コンテンツにスキップ
Dev Classmethod Jp Articles React Useeffect Cleanup and Exhaustive Deps

useEffectのクリーンアップ関数とexhaustive-depsルールを正しく理解する

詳細

useEffectのクリーンアップはコンポーネントアンマウント時だけでなく、次のエフェクト実行前にも呼ばれる(依存値変化時)。exhaustive-depsは依存配列の過不足を検出するeslintルールで、useCallbackやuseMemoにも適用される。クリーンアップを忘れた際の典型的なメモリリークパターン(setStateをアンマウント後に呼ぶ)と、useRefを使った解消パターンも紹介。stale closureとの関係も解説されている。