React Hooks Hooks API Reference – React

js

const memoizedCallback = useCallback(
  () => {
    doSomething(a, b);
  },
  [a, b],
);
  • useCallback(fn, deps)は「depsが変化した場合のみfnを呼び出す関数」を作る
  • fnに引数が渡されるわけではない。外のスコープから読む。
  • 注目したい値(deps)以外の変更ではfnが呼び出されないように刈り込みたい時に使う
  • useCallback(fn, deps) は useMemo(() => fn, deps) と等価 useMemo
  • fnの中で使う値はdepsの中で列挙されているべきである(設計思想)
    • コンパイラが進歩したらdepsは自動生成される
    • exhaustive-deps ルールによってESLintでチェックできる