728x90
useCallback에 대해 질문이 들어와서 예시를 만들어 주면서 답변을 해주었는데, 짧게나마 적은 코드가 아까워서 블로그에 남깁니다.
const message = 'hi';
function UseCallBackExample() {
const [, renderingBtn] = useState(0);
const noMemo = () => console.log('hi');
const yesMemo = useCallback(() => console.log(message), [message]);
useEffect(() => {
console.log('no memo called');
}, [noMemo]);
useEffect(() => {
console.log('yes memo called');
}, [yesMemo]);
return (
<button onClick={() => renderingBtn(prev => prev + 1)}>rerendering</button>
);
}
export default UseCallBackExample;
1) useEffect가 의존성 배열안의 값이 변경되는지 감지해서 call된다는걸 이용해서
2) reRendering 버튼을 누를 때
3) noMemo와 yesMemo (useCallback으로 메모이제이션 한 함수)가 변하는지 아닌지 확인 가능
간단한 예시지만, 이런 예시가 누군가에겐 필요한것 같아 공유합니다.
'FrontEnd > React.js' 카테고리의 다른 글
[React.js] 제로초 슬랙 클론코딩 - 1. 회원가입/로그인 페이지 (SWR) (0) | 2022.12.12 |
---|---|
[React.js] 코드 스플리팅 (Loadable) (0) | 2022.12.12 |
[React.js] 제로초 웹게임 - 6. 로또 (useCallback, useMemo) (0) | 2022.12.01 |
[React.js] useContext 찍먹, useFetch 구현, loading, error 상태 관리 (0) | 2022.10.31 |
[React.js] axios instance.interceptor를 이용한 미들처리 (0) | 2022.10.29 |
[React.js] 리팩토링 하며 생긴 질문 - axios 의 catch() 와 try-catch의 catch가 같은건가? (0) | 2022.10.28 |
[React.js] 제로초 웹게임 - 5. 가위바위보 (life Cycle, useEffect) (0) | 2022.10.25 |
[React.js] 제로초 웹게임 - 4. 반응속도체크 (useRef) (0) | 2022.10.24 |
댓글