useCallback은 콜백의 메모이제이션된 버전을 반환할것이다.

그리고 콜백의 의존성이 변경되었을 때에만 변경되게 된다.

const memoizedCallback = useCallback(
  () => {
    doSomething(a, b);
  },
  [a, b],
);

useCallback(fn, deps) 은 useMemo(() ⇒ fn, deps) 와 같다.

useCallback / useMemo

useMemo는 특정 결과값을 재사용 할때 사용하는 반면, useCallback 은 특정 함수를 새로 만들지 않고 재사용하고 싶을 때 사용한다.