렌더링 최적화를 위한 Hook 중 하나

useCallback

메모이제이션 기법을 이용한 Hook

함수의 재사용을 위해 사용하는 Hook

function Calculator({ x, y }) {
  const add = () => x + y;

  return (
    <>
      <div>{add()}</div>
    </>
  );
}

add 함수는 렌더링될 때 마다 새로 만들어 짐

x와 y가 바뀌지 않다면 새로 만들어질 필요가 없음

import React, { useCallback } from "react";

function Calculator({ x, y }) {
  const add = useCallback(() => x + y, [x, y]);

  return (
    <>
      <div>{add()}</div>
    </>
  );
}

자식 컴포넌트의 props로 함수를 전달해줄 때 사용 적절


useCallback과 참조 동등성


useCallback은 참조 동등성에 의존

JavaScript에서 함수는 객체, 객체는 주소를 저장, 반환하는 값이 같을 지라도 일치연산자로 비교했을 때 false가 출력

따라서 React 컴포넌트 함수 내에서 다른 함수의 인자로 넘기거나 자식 컴포넌트의 prop으로 넘길 때 예상치 못한 성능 문제를 방어

댓글남기기