
[20230317] 리액트 성능최적화 Hook (useMemo, useCallback)
·
TIL
리액트 렌더링에 대해 다시 공부해보며 성능최적화 Hook의 개념을 공부해보았다. 먼저 리액트에서 렌더링되는 경우를 다시 짚어보면 아래와 같이 세가지의 경우가 있다. 1. 부모 컴포넌트가 렌더링된 경우 2. 컴포넌트의 state가 변경된 경우 3. 부모로부터 전달받은 props값이 변경된 경우 memo라는 함수는 컴포넌트에 변경된 사항이 없을 경우 불필요한 리렌더링을 막는 함수이다. 그런데 이러한 memo를 사용하더라도 아래와 같이 props를 넘겨주는 컴포넌트가 있다면 그 props가 리렌더링됨에 따라 재생성되므로 어쩔 수 없이 리렌더링되는 문제가 있다. 그래서 props로 함수를 넘겨주는 경우에는 useCallback을, 객체나 배열을 넘겨주는 경우에는 useMemo를 사용하여 의존성 배열안의 값이 바..