Посібники · 07

Перехід із React Native

Що лишається незмінним, що змінюється і що додає веб.

Ті самі виклики

Контролери, графи й конфігурації наслідують Animated з React Native. Рендеріть DOM-хости на кшталт Animated.div там, де React Native рендерить Animated.View. useAnimatedValue доступний так само, як у React Native.

Підготовка прикладу…

Відмінності, які варто знати

Завдяки цим деталям перенесений код поводиться так само, як на пристрої.

  • useNativeDriver і isInteraction приймаються. Натомість відтворення обирається для кожного виходу окремо: придатні виходи відтворює браузер, решту — JavaScript.
  • spring приймає stiffness/damping/mass, bounciness/speed або tension/friction, а якщо нічого не задано — типові значення React Native.
  • interpolate підтримує easing і три режими екстраполяції.
  • Easing збігається з React Native, зокрема elastic. Easing.exp масштабовано на 0,1 %, щоб починатися рівно з 0 й використовувати відтворення браузером.
  • Швидкість decay задається в одиницях за мілісекунду, а швидкість пружини — в одиницях за секунду, як у React Native.
  • Animated.createAnimatedComponent обгортає компонент, що прокидає ref.
Spinner.jsx
// React Native
<Animated.View style={{ transform: [{ rotate }] }} />

// React DOM with @kkwaenggwari/animated — the rest is identical
<Animated.div style={{ transform: [{ rotate }] }} />

const spin = useAnimatedValue(0);
const rotate = spin.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg'] });

Animated.loop(
  Animated.timing(spin, { toValue: 1, duration: 900, easing: Easing.linear, useNativeDriver: true }),
).start();

Що додає веб

Звичайний style React напряму приймає значення хуків, seed/pose/respond описують цілі й жести, а Animated.Keep і Animated.Scene відповідають за виходи й розкладку.

Пошук

Почніть вводити, щоб шукати в документації.