memo , useMemo , useCallback
1. memo
不要な例
例をもう一度修正します.
GrandParentコンポーネントにボタンイベントを追加し、
setGrandParent
を実行します.サブエレメントとしてのParentエレメントとChildエレメントは、変更されていなくても再レンダリングされます.
この黄色い部分の下に、ボタンを押したときにレンダリングされた構成部品が出力されます.
親コンポーネントにボタンが1つしかない場合でも、サブコンポーネントは不要なレンダリングを生成することは明らかです.
解決する
Parent素子を
memo
に組み合わせて処理する.const Parent = memo(()=>{...})
これにより、
memo
の親エレメント上のstateの変化により、サブエレメントの不要なレンダリングを防止することができる.こうじそし
パラメータとして構成部品を受け入れ、新しい構成部品を返します.
2. useMemo
複雑な関数の結果値を記憶
そうでなければ、以前の値
例
関数が他の状態の変化によって影響されるため、関数が構成部品内で再実行される役割を阻止します.
他の影響を受けるオブジェクトを指定できます.
const Lotto = () => {
const lottoNumbers = useMemo(() => getWinNumbers(), []);
....
}
getWinNumbers
を実行しないでください.3. useCallback
新しい関数を作成せずに特定の関数を再使用したい場合に使用します.
useMemoと差が少ない-->usemmoをベースに作られています.useCallback(fn, deps) === useMemo(() => fn, deps)
Reference
この問題について(memo , useMemo , useCallback), 我々は、より多くの情報をここで見つけました
https://velog.io/@khw970421/memo-useMemo-useCallback
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(memo , useMemo , useCallback), 我々は、より多くの情報をここで見つけました https://velog.io/@khw970421/memo-useMemo-useCallbackテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol