RSS DEV コミュニティ

Reactjs の useCallback を理解する

Reactでは、コンポーネント内で宣言された関数は、毎回のレンダリングで異なる参照で再作成されるため、useEffectや子コンポーネントで問題が発生します。useEffectがこの関数に依存している場合、毎回のレンダリングで再実行されます。同様に、子コンポーネントは必要ない場合でも再レンダリングされます。これを防ぐために、React.memoを使用して子コンポーネントをキャッシュし、プロップが変更された場合にのみ再レンダリングされるようにすることができます。しかし、関数をプロップとして渡す場合、子コンポーネントはプロップが変更されなくても再レンダリングされます。これは、関数の参照が毎回のレンダリングで変更されるため、子コンポーネントが再レンダリングされるためです。これを修正するために、useCallbackフックを使用して、関数の参照をレンダリング間でキャッシュすることができます。useCallbackは、関数と依存関係の配列を引数として取り、依存関係が変更された場合にのみ変更されるキャッシュされた関数を返します。useCallbackを使用することで、関数が安定した参照を持つようにし、不要な再レンダリングを防ぐことができます。イベントハンドラ、useEffect内で呼び出される関数、または関数を返すカスタムフックがある場合に、useCallbackを使用する必要があります。
favicon
dev.to
Understanding useCallback in Reactjs
Create attached notes ...