約 5 分 · React 16.8+ · React DOM

はじめる

インストールからジェスチャー、登場・退場のモーションまでを 6 ステップで。各ステップは小さな動くコンポーネントです。

  1. インストール

    Animated にランタイム依存はありません。React 16.8 以上が peer dependency です。

    パッケージのエントリーには 'use client' が付いています。Next.js App Router では、サーバーのレイアウトで AnimatedProvider を描画でき、フックと Animated.<tag> は Client Component の中で使います。

    npm install @kkwaenggwari/animated

    エディターで @kkwaenggwari/animated の import が解決されていること。

  2. 最初の値を動かす

    useAnimatedValue(1) は、コンポーネントが生きている間ずっと動く数値を持ちます。そのまま style に入れると CSS 変数になるので、値が変わっても React はレンダリングしません。

    timing(value, { toValue, duration }).start() で値を動かします。途中でもう一度押すと、現在の不透明度から始まります。

    サンプルを準備中…

    ボックスがフェードアウトして戻り、途中でもう一度押すとその位置から反転すること。

  3. ひとつの値から多くの出力を導く

    interpolate は値を長さ、角度、数値へ対応付けます。イージングがなければ同じ変数の正確な calc() になるので、5 レーンでもコストは 1 レーンと同じです。

    同じ値に異なる入力範囲を与えれば、5 つの別々のアニメーションなしでカスケードがつくれます。

    サンプルを準備中…

    1 回押すと 5 レーンがカスケードして動き、spread を変えると範囲だけが変わること。

  4. 行き先を書く

    Animated.button は普通の button を描画します。seed は最初のフレーム、pose はいまあるべき位置、tempo はそこへの行き方です。

    移動の途中で pose が変わると、要素は画面上の位置から向きを変え、スプリングなら速度も引き継ぎます。

    サンプルを準備中…

    カードをすばやくクリックしても、カードが飛ばないこと。

  5. 入力をつなぐ

    input(ref, moveInput(...)) はポインターの座標を値に書き込みます。follow(target, source) は一方の値をもう一方にスプリングで追従させます。

    useAnimated のファクトリーで宣言したものはすべてコンポーネントが所有します。アンマウントされるか依存値が変わると、リスナーもスプリングも止まります。

    サンプルを準備中…

    カードがポインターのほうへ傾き、ポインターが離れると元に戻ること。

  6. 退場をアニメーションする

    React の子要素を取り除くと、普通はすぐに消えます。Animated.Keep は key 付きの子要素を、depart のポーズが終わるまで残します。

    wait は、すべての退場が終わってから新しい子要素を描画します。

    サンプルを準備中…

    閉じたメッセージが、選んだモーションで退場してから消えること。

検索

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