비슷하면서 다른 useCallback과 usePreservedCallback에 대해 정리를 간략히 해보았습니다.

useCallback훅

공식문서에서 useCallback훅은 다음과 같이 정의되어 있어요.

useCallback훅은 함수를 메모리제이션하며, 리렌더링 간에 함수를 재사용합니다.

간단한 사용법은 다음과 같아요.

useCallback(fn,deps)

다만 컴포넌트에서 콜백 함수를 사용할때, 의존성 배열이 빈상태로 있으면 해당 함수가 최신 상태를 참조하지 않습니다.

예를 들어서

const MyComponent = () => {
  const [count, setCount] = useState(0);

  const handleClick = useCallback(() => {
    console.log(count);
  }, []);

  return (
    <div>
      <p>{count}</p>
      <button onClick={handleClick}>클릭</button>
      <button onClick={() => setCount(count + 1)}>증가 버튼</button>
    </div>
  );
};