Skip to main content

ReactHooks

React Hooksとは

React Hooksはv16.8から追加された新機能。

Reactではクラスコンポーネントと関数コンポーネントの2種類がありましたが、v16.8以前では関数コンポーネントでは状態(state)を持つことができなかったため、クラスコンポーネントが主流でした。

v16.8からHooksの追加され、関数コンポーネントに状態を持たせることが可能になり、UIを切り替えたり、外部APIからデータを取得することができるようになりました。

現在は、Hooksを使った関数コンポーネントが主流。

React Hooksの種類

分類フック名効果対象使用目的
Basic HooksuseStateコンポーネントの状態を管理するすべてのコンポーネントコンポーネント内で状態を保持し、その状態の変更や取得が可能になる
useEffectコンポーネントの副作用を処理するすべてのコンポーネントコンポーネントがマウントされたり更新されたりした際に副作用(API呼び出し、イベントリスナーの登録など)を実行する
useContextコンテキストを利用するすべてのコンポーネントコンテキストを利用してコンポーネントツリー内で値を共有する
Additional HooksuseReducer複雑な状態やアクションに基づく状態の更新を処理するすべてのコンポーネント状態の更新に基づくアクションを処理し、新しい状態を返す
useCallbackコールバック関数をメモ化して再レンダリングの最適化を行うすべてのコンポーネントコールバック関数の再生成を防止し、パフォーマンスを向上させる
useMemo値をメモ化して再レンダリングの最適化を行うすべてのコンポーネント計算結果をキャッシュして再レンダリングの最適化を行う
useRef参照を作成するすべてのコンポーネントコンポーネントのレンダリング間で値を保持する
useImperativeHandleリフォワードリファレンスをカスタムする特定のコンポーネント子コンポーネントのインスタンスを親コンポーネントで直接操作できるようにする
useLayoutEffectブラウザの描画後に副作用を処理するすべてのコンポーネントuseEffectと似ているが、ブラウザの描画後に副作用を処理するため、描画の前にDOMを直接操作する場合に適している
useDebugValueカスタムフックにラベルを付けてデバッグを補助するカスタムフックカスタムフックの値をデバッグするために使用する
useDeferredValue遅延評価された値を扱うすべてのコンポーネント遅延評価された値(非同期の値など)を取り扱うために使用する
useTransition遅延ローディングやアニメーションを処理するすべてのコンポーネントコンポーネントの表示を遅延させたり、アニメーションを制御するために使用する
useIdユニークなIDを生成するすべてのコンポーネントユニークなIDを生成し、要素の一意性を確保する
Library HooksuseSyncExternalStore外部ストア(状態管理ライブラリなど)と同期するすべてのコンポーネント外部の状態管理ライブラリ(Reduxなど)とReactコンポーネントを同期させる
useInsertionEffectDOMへの要素の挿入や削除を監視し、副作用を処理するすべてのコンポーネント要素がDOMに挿入または削除されたときに副作用を実行する

参考