grotesq / codelab-next-js-3rd

5 stars 1 forks source link

2주차 강의 내용 useCallback 질문입니다. #4

Closed HoJin9622 closed 2 years ago

HoJin9622 commented 4 years ago

2주차 강의 todo list 만들기에서 addItem 함수와 removeItem 함수를 useCallback 으로 만들어주는 이유가 궁금합니다.

unk commented 4 years ago

https://ko.reactjs.org/docs/hooks-reference.html#usecallback

함수 컴포넌트는 변경점이 생길 때 마다 재호출됩니다. 컴포넌트의 재호출 횟수가 10번이라고 칠 때, addItem과 removeItem이 변경점이 없는데도 호출 횟수에 맞춰 매번 재생성 된다면 불필요한 생성이 될겁니다. useCallback은 이런 경우 재생성이 필요한 경우에만 재생성을 하도록 최적화에 도움을 줍니다.

HoJin9622 commented 3 years ago

그러면 모든 함수에 useCallback 을 사용하여 작성해야 하나요? 아니면 여러번 호출되는 함수에 useCallback을 사용하는게 맞는건가요? 어떤 함수에 useCallback을 사용해야하는건지 이해가 힘드네요 ㅠㅠ

unk commented 3 years ago

호출 횟수를 조절해서 성능 최적화를 하는 경우에만 쓰시면 됩니다. 긴가민가하시면 그냥 일반 함수로 쓰세요.

HoJin9622 commented 3 years ago

감사합니다!