React.memo는 react에서 제공하는 hook이다. 성능을 향상하는데 도움이 되는 hook이다.
React.memo()
React는 이전 렌더링 결과와 비교하여 DOM에 업데이트를 결정한다. 렌더링 결과가 이전과 다르다면 DOM을 업데이트 한다.
React.memo()는 기존에 클래스 컴포넌트에서 shouldComponentUpdate가 내재되어 있다고 생각하면 된다. (PureComponent와 같음) React.memo()로 래핑을 하면 컴포넌트를 렌더링하고 결과를 메모이징(Memoizing)한다. 다음 렌더링이 일어날 때 props가 같다면 메모이징(Memoizing)된 내용을 재사용한다.
() => cookies.clear()는 MyApp 컴포넌트가 렌더링될 때마다 새롭게 props를 생성하고 있다. 그래서 React.memo를 사용하더라도 계속 재렌더링하게 된다. 이러한 경우에는 useCallback()을 이용해서 콜백 인스턴스를 보존시키는 방법이 있다.