01.The React useCallback Hook은 memoized된 callback function을 반환한다.
w3schools 에서는 useCallback을 사용하면 값이 더는 계산될 필요가 없다고 저장하는 것으로 간주한다.라고 정의하고있다.
02.useCallback은 리소스가 집약된 함수들이 랜더될때마다 자동 실행되지 않게 격리한다.
즉 useMemo처럼 dependecies 업데이트 될때만 작동하도록 한다.
사용법또한 비슷하다.
useCallback(function, declare array), 함수와 의존하는 배열을 입력받고, 의존하는 값들이 바뀌지 않는 한 기존 함수를 계속해서 반환합니다.
즉 의존하는 값이 바뀌면 새로운 함수가 생성되어 함수의 변수에 할당되고, 의존하는 값이 동일하다면 다음 랜더링 때 이 함수를 재사용 한다.
const memoizedCallback = useCallback(함수, 배열);
const add = () => x + y; //매번 랜더링 된다.
const add = useCallback(() => x + y, [x, y]); //callback 사용
함수 의존 값
03.사용하는 이유
사실 component가 rendering될 때마다 함수를 새로 선언하는 것은 javascript가 브라우저에서 얼마나 빨리 실행되는지를
생각해보면 성능 상 큰 문제가 되지 않는다.
따라서 useCallback()을 사용하는 것은 큰 의미가 없거나 오히려 손해인 경우도 있다.
useCallback을 사용하는 한 가지 이유는 props가 변경되지 않는 한 component가 re-rendering되지 않도록 하기 위함이다.
**
useCallback() hook 함수는 자식 컴포넌트의 랜더링의 불필요한 랜더링을 줄이기 위해서
React.memo() 함수와도 사용할 수 있다.
간단한 예제는 아래의 주소에 가서 확인해보면 된다.
https://www.daleseo.com/react-hooks-use-callback/
React Hooks: useCallback 사용법
Engineering Blog by Dale Seo
www.daleseo.com
'일반' 카테고리의 다른 글
React - Routing (0) | 2022.11.11 |
---|---|
The React Hooks - useRef Hook (0) | 2022.11.11 |
The React Hooks - useMemo (0) | 2022.11.11 |
React.js (0) | 2022.11.10 |
[Linux] pm2 설치하기 및 사용 (0) | 2022.10.19 |