TIL(Today I Learned)/2021년
12.03 - useCallback은 정확히 언제?
심리밀당남
2021. 12. 3. 19:13
1. useCallback은 정확히 언제 쓸까?
⇒ re-render가 많이 일어나는 component에, 복잡한 내용의 function이 있다면, 여기에 쓴다!
- text를 타이핑하는 컴포넌트 등은 re-render가 정말 많이 일어남
- re-render가 일어난다는 것은, 해당 컴포넌트 전체가 새로고침 된다(entirely new instances of functions are created)는 말임
- 그 때마다 고비용의 함수가 다시 re-create 됨 → 비효율적!
Memoizing 고려사항!
- side effects를 일으키는 함수들은 memoize 하지 않는다
- memoize 전후에 Profiler로 성능 측정을 한다
- 성능개선 효과가 크지 않다면 memoize 하지 않거나 제거하는게 좋음(코드 간결성 + memoize memory 확보를 위해)
- re-render가 자주 일어나는 component의 자식 컴포넌트 중, static한게 있다면 memoize 하는게 좋음(React.memo 등)
https://rossbulat.medium.com/how-to-memoize-in-react-3d20cbcd2b6e
How to Memoize Components in React
Using React.memo, useMemo other APIs to limit re-rendering of components
rossbulat.medium.com