ガイド · 07
React Native から来た方へ
変わらないこと、変わること、Web で加わること。
同じ呼び出し
コントローラー、グラフ、設定は React Native の Animated と同じです。React Native で Animated.View を描画していたところに、Animated.div などの DOM 要素を描画します。useAnimatedValue も React Native と同じように使えます。
サンプルを準備中…
知っておきたい違い
移植したコードがデバイス上と同じように動くための細かな点です。
useNativeDriverとisInteractionは受け付けます。ただし再生経路は出力ごとに選ばれます。対象になる出力はブラウザーで、それ以外は JavaScript で再生されます。springはstiffness/damping/mass、bounciness/speed、tension/frictionのいずれも受け付け、何も指定しなければ React Native のデフォルトになります。interpolateはeasingと 3 種類の外挿モードに対応しています。Easingはelasticも含めて React Native と同じです。Easing.expは 0 からぴったり始まるよう 0.1% だけスケールし直してあり、ブラウザー再生を使えます。- decay の速度は 1 ミリ秒あたり、spring の速度は 1 秒あたりの単位で、React Native と同じです。
Animated.createAnimatedComponentは ref 転送コンポーネントをラップします。
// 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();Web で加わること
普通の React の style がフックの値をそのまま受け付け、seed/pose/respond で目的地とジェスチャーを記述し、Animated.Keep と Animated.Scene が退場とレイアウトを扱います。