React Transition Groupを使用したスムーズなアニメーションの実装方法


まず、React Transition Groupをプロジェクトにインストールします。npmコマンドを使用して、以下のようにインストールできます:

npm install react-transition-group

React Transition Groupを使用するには、以下の手順を実行します:

  1. 必要なコンポーネントをインポートします。
import { Transition } from 'react-transition-group';
  1. アニメーションを適用したい要素をコンポーネント内に記述します。たとえば、<div>要素をアニメーション化したい場合は、次のようにします:
<Transition in={true} timeout={300}>
  {(state) => (
    <div className={`fade fade-${state}`}>
      Content that will be animated
    </div>
  )}
</Transition>
  1. inプロパティにはアニメーションの開始・終了を制御する真偽値を指定します。timeoutプロパティにはアニメーションの時間(ミリ秒)を指定します。

  2. アニメーションのステートを利用して、CSSクラスを動的に切り替えます。例えば、fadeクラスをアニメーションの状態に応じてfade-enterfade-enter-activefade-exitfade-exit-activeなどに変化させることができます。

これで基本的なアニメーションの実装が完了しました。さらに高度なアニメーションを実現するために、React Transition Groupはさまざまなコンポーネントを提供しています。たとえば、CSSTransitionコンポーネントを使用すると、CSSトランジションを簡単に設定できます。

以下に、CSSTransitionを使用したフェードイン・フェードアウトのアニメーションの例を示します:

import { CSSTransition } from 'react-transition-group';
import './styles.css';
<CSSTransition in={true} timeout={300} classNames="fade">
  <div>
    Content that will be animated
  </div>
</CSSTransition>

上記の例では、fadeクラスを使用してフェードイン・フェードアウトのアニメーションが適用されます。classNamesプロパティには適用するCSSクラス名を指定します。

React Transition Groupを使用することで、Reactアプリケーションにスムーズなアニメーションを追加することができます。この記事では、基本的な使い方といくつかのコード例を紹介しましたが、さらに多くの機能やカスタマイズオプションがあるため、公式ドキュメントを参照することをおすすめします。