P粉8348408562023-08-19 00:29:53
はい、これは正しいです。レンダリングごとに新しい関数が作成され、キャッシュされた関数に置き換えられます。
高速化は、関数の作成ステップを省略したことによるものではなく、他のコードが独自の作業を省略できるためです。毎回同じ関数が渡されると、関連するものは何も変わっていないことがわかるからです。
たとえば、handleChange
を useEffect
の依存関係配列に渡す必要がある場合、毎回安定した参照を渡すことが非常に重要です。そうしないと、エフェクトが毎回渡されてしまいます。レンダリングされる時間。再実行:
または、handleChange
がプロップとしてコンポーネントに渡され、コンポーネントが React.memo
を使用してレンダリングをスキップしたい場合。レンダリングは、プロパティが変更されていない場合にのみスキップできます: