useMemo / useCallback
なぜ学ぶか: AIは「最適化」と称してuseMemoをあちこちに振りかけることがあります。でも多くは不要で、むしろ読みにくくします。「何を節約しているか」が分かると、「このuseMemoは要る?」というレビューができます。
まずはこの例を見てみましょう
// useMemo = 「計算結果の使い回し」 const filtered = useMemo( () => products.filter((p) => p.includes(keyword)), // 重い計算(のつもり) [products, keyword], // ← この2つが変わらない限り、前回の結果を使い回す );
「依存(末尾の配列)が変わらない限り、再計算しない」仕組み。ただし軽い計算に付けても意味がありません。
useMemo=計算結果の使い回し
例のとおり「重い計算のキャッシュ」です。依存が変わったときだけ再計算します。
ほとんどの計算には不要
数十件のfilter程度なら毎回計算しても一瞬です。useMemo自体にもコストがあるので、「測って遅かったら使う」が原則です。
「とりあえず全部」はノイズ
AIが機械的に全部包んでいたら「重い計算だけに絞って」と指示します。読みやすさも性能のうちです。
ステップ 1 / 3
※ カリキュラムの内容はAIが生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。