useCallback은 리랜더링 사이에 함수 정의 캐시할 수 있는 Rreact Hook 입니다.
const cachedFn = useCallback(fn, dependencies)
Parmeters ( 매개변수 )
fn
- 캐시하려는 함수입니다. 이 함수는 어떠한 인수도 받을 수 있고 어떠한 값이라도 반환할 수 있습니다.
- React는 초기 랜더링 중에 함수를 다시 반환하고 호출하지는 않습니다.
- 재랜더링 시,
dependecies 목록에 해당하는 값이 변경되지 않았다면 React는 동일한 함수를 다시 제공합니다.
- 반면,
dependecies 목록에 해당하는 값이 변경되었다면 새로운 함수를 정의해 제공합니다.
- React가 함수를 호출하지 않고 사용자에게 제공함으로 사용자는 해당 함수를 언제 호출할 지 결정할 수 있습니다.
denpendecies
- fn 코드 내에서 참조되는 모든
relative 값의 목록입니다. relative 값에는 프로퍼티, state, 컴포넌트 본문 내부에서 직접 선언된 모든 변수와 함수가 포함됩니다
- React는
Object.is 비교 알고리즘을 사용하여 각 의존성을 이전 값과 비교합니다.