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