最終更新:2022-12-16 (金) 10:22:38 (494d)  

useEffect
Top / useEffect

副作用 (effect) フック

関数コンポーネント内で副作用を実行することができるようになる

https://ja.reactjs.org/docs/hooks-effect.html

構文

  • useEffect(実行する関数, [依存する値]);

概要

  • DOMへの更新(レンダリング)を反映した後にあなたが定義する「副作用関数」を実行するように React に指示
  • ある値が変わっときに処理を実行する機能
  • 関数の実行タイミングをReactのレンダリング後まで遅らせるhook

副作用の例

  • データの取得
  • 購読 (subscription) の設定
  • React コンポーネント内のDOMの手動での変更

メモ

  • 典型的には、副作用は React が DOM を更新したあとに起こすようにしたい

副作用の種類

クリーンアップを必要としない副作用

  • React が DOM を更新した後で追加のコードを実行したい
    • ネットワークリクエストの送信
    • 手動での DOM 改変
    • ログの記録

クリーンアップを有する副作用

  • returnにクリーンアップ関数を書く

注意点

  • 依存する値が変わったときに加え、マウント時にも必ず実行される。
  • []を指定するとコンポーネントの初回表示時に実行するようにできる

前の状態を取得したい

React/クラスコンポーネントの場合