1일1글

TIL : useCallback()은 내부적으로 useMemo()를 사용한다.

윤-찬미 2022. 5. 18. 13:08

useCallback은 메모이제이션 된 콜백을 반환한다.
useMemo 메모이제이션된 값을 반환한다.

공식문서에 따르면 useCallback(fn, deps)은 useMemo(() => fn, deps)와 같습니다. 라고 한다.

값대신 함수를 메모이제이션을 의도 한 것이니, useMemo 를 사용했나보다.

export function useCallback<T>(
  callback: T,
  deps: Array<mixed> | void | null,
): T {
  return useMemo(() => callback, deps);
}

 

추가로 useCallback과 useMemo 를 적절하게 사용하면 렌더링 최적화를 누릴 수 있지만, 무분별 하게 사용했을 때는 메모이제이션 용 메모리를 따로 할당해야 함으로 오히려 불필요한 리소스가 들어가게 된다.