useEffect
別名: useEffect フック / 副作用フック
コンポーネントのレンダリング後に、データ取得や購読などの副作用を実行し後始末するための React 標準フック。
#react#hooks#useeffect#side-effect
公開:
定義
useEffect は、レンダリングが画面に反映された後に副作用(外部システムとの同期)を実行するための React フックです。
第 1 引数に setup 関数、第 2 引数に依存配列を渡し、setup が返す cleanup 関数で後始末を記述します。
詳細
useEffect(setup, deps) は、マウント時に setup を実行し、依存配列の値が変わるたびに「前回の cleanup → 今回の setup」を再実行します。
アンマウント時には最後の cleanup が走ります。
データ取得、イベント購読、タイマー(setInterval)など、React の外側にある仕組みと状態を同期させる用途で使います。
setup の中で参照した値は、すべて依存配列に列挙するのが原則です。
よくある誤解
- 「毎回必ず実行される」:依存配列を渡せば、値が変化したときだけ再実行されます。
空配列[]ならマウント時のみです。 - 「ライフサイクルメソッドの置き換え」:本質は同期であり、mount / update / unmount を個別に再現する道具ではありません。
関連
依存配列の扱いは 依存配列、クロージャの落とし穴は Stale Closure を参照。
無限ループの例は useEffect が無限ループする で扱います。