まず、React Transition Groupをプロジェクトにインストールします。npmコマンドを使用して、以下のようにインストールできます:
npm install react-transition-group
React Transition Groupを使用するには、以下の手順を実行します:
- 必要なコンポーネントをインポートします。
import { Transition } from 'react-transition-group';
- アニメーションを適用したい要素をコンポーネント内に記述します。たとえば、
<div>
要素をアニメーション化したい場合は、次のようにします:
<Transition in={true} timeout={300}>
{(state) => (
<div className={`fade fade-${state}`}>
Content that will be animated
</div>
)}
</Transition>
-
in
プロパティにはアニメーションの開始・終了を制御する真偽値を指定します。timeout
プロパティにはアニメーションの時間(ミリ秒)を指定します。 -
アニメーションのステートを利用して、CSSクラスを動的に切り替えます。例えば、
fade
クラスをアニメーションの状態に応じてfade-enter
、fade-enter-active
、fade-exit
、fade-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アプリケーションにスムーズなアニメーションを追加することができます。この記事では、基本的な使い方といくつかのコード例を紹介しましたが、さらに多くの機能やカスタマイズオプションがあるため、公式ドキュメントを参照することをおすすめします。