React 렌더링 최적화라 하면 React.memo, useCallback, useMemo 같은 최적화 기법을 사용해서 리렌더링을 최소화하는 것을 의미한다.

React.memo, useCallback, useMemo 와 같은 React의 렌더링 최적화 기법들을 알아보기 전에, React가 언제 리렌더링 되는지 언제 불필요한 리렌더링이 발생하는지 또 왜 불필요한 리렌더링을 방지해야 하는지를 살펴보자!

<aside> ❓

React는 언제 리렌더링 될까? 🧐

</aside>

React에서 컴포넌트의 리렌더링이 일어나는 조건은 다음과 같다.

  1. 특정 컴포넌트가 상속받은 props가 변경 되었을 때 그 컴포넌트는 리렌더링 됨.
  2. 부모 컴포넌트가 리렌더링 될 때 자식 컴포넌트는 모두 리렌더링 됨.
  3. 특정 컴포넌트의 state가 변경되었을 때 그 컴포넌트는 리렌더링 됨.

이때, 위의 조건들로 인해 불필요한 리렌더링이 발생하는 경우가 생긴다!! 😫

  1. 부모 컴포넌트의 리렌더링으로 인해 자식 컴포넌트가 리렌더링 되는 경우

  2. 함수나 객체가 props로 전달될 때 재생성으로 인해 리렌더링되는 경우

  3. 상태나 props가 객체 또는 배열일 때 참조(reference) 비교로 인해 리렌더링되는 경우