ガイド · 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 転送コンポーネントをラップします。
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();

Web で加わること

普通の React の style がフックの値をそのまま受け付け、seed/pose/respond で目的地とジェスチャーを記述し、Animated.Keep と Animated.Scene が退場とレイアウトを扱います。

検索

入力するとドキュメントを検索します。