useCallback()
1. useCallback()이란?
함수를 정의한 컴포넌트 내부에서 사용할 때는 적절하지 않다. 하지만 함수를 자식 컴포넌트에 전달 할 때는 useCallback을 사용하는 것이 좋다.
자식 컴포넌트에 함수를 전달(전파)하게 되면 부모, 자식 모두가 함수를 계속해서 새롭게 렌더링 된다. 이는 성능최적화에 문제를 준다. → 동시성
useCallback() 훅을 사용하면 해당 함수를 기억(memo)하고 있기 때문에 의존성 모듈이 변경 되기 전에는 다시 렌더링 되지 않는다.
컴포넌트가 업데이트 될 때 마다 불필요한 과정이 발생하지 않도록 설정한다.
주의!
useCallback()은 종속성 배열을 필수로 갖는다.종속성 배열엔
useCallback()이 의존하고 있는 모든 것을 넣는다.[](빈배열)로 설정하면 1번만 그려진다.[state, props]로 설정하면 state와 props가 변경될 때 다시 렌더링 된다.
2. useCallback() 작동 흐름

3. 비교
일반 콜백 함수
메모된 콜백 함수
메모된 콜백 함수는 GUI 렌더링, 스프라이트, 애니메이션 물리 등에 사용 되는 재귀 함수를 처리 할 때 사용하는 것이 좋다.
Last updated
Was this helpful?