인프런 커뮤니티 질문&답변

채민지님의 프로필 이미지
채민지

작성한 질문수

[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

11.3) Context 분리하기

useCallback

작성

·

224

0

안녕하세요!!!
 
일기를 삭제할 때 다른 일기들이 리렌더 되지 않기 위해 useCallback을 사용한다. 라고 이해했습니다.
 
그러면 App.js에 onRemove에만 useCallback을 하면 되는 거 아닌가요?
 
왜 onEdit에도 useCallback을 해야할까요?
onEdit은 일기 수정이니 onRemove만 useCallback한 후 일기 삭제하면 리렌더링이 안되야하는거아닌가요???
 
(둘 중 하나만 하면 전체 일기가 리렌더링 되었습니다...)

답변 1

0

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

안녕하세요 이정환입니다.

일기를 삭제하면 App 컴포넌트의 state가 변화되어

App컴포넌트 내부에 작성된 함수 모두 다시 생성됩니다.

따라서 onRemove외의 onEdit, onCreate모두 useCallback으로 재 생성되지 않도록 해야 최적화를 수행할 수 있습니다.

 
채민지님의 프로필 이미지
채민지

작성한 질문수

질문하기