<aside> 💡 関数内における任意のサブルーチンを呼び出した結果を後で再利用するために 保持しておき、その関数が呼び出されるたびに再計算されることを防ぐ、 プログラム高速化の手法のこと
</aside>
const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
**
useMemo
はパフォーマンス最適化のために使うものであり、意味上の保証があるものだと考えないでください。**将来的に React は、例えば画面外のコンポーネント用のメモリを解放するため、などの理由で、メモ化された値を「忘れる」ようにする可能性があります。useMemo
なしでも動作するコードを書き、パフォーマンス最適化のためにuseMemo
を加えるようにしましょう。
const reset = useCallback(() => setTimeLeft(limit), [limit]);
const inputRef = useRef<HTMLInputElement>();