부모 렌더
상태 변화로 부모 함수가 다시 실행됩니다.
React.memo는 이전 props와 다음 props를 얕게 비교합니다. 값 또는 참조가 같으면 skip, 새 객체와 함수 참조가 들어오면 re-render로 이어집니다.
상태 변화로 부모 함수가 다시 실행됩니다.
prevProps와 nextProps를 항목별로
봅니다.
원시값은 값, 참조값은 주소가 유지되는지 확인합니다.
5와 5
number, string, boolean은 값이 같으면 같은 props입니다.
이전과 같은 참조를 넘기면 자식 호출을 건너뜁니다.
{ a: 1 }을 다시 생성
내용이 같아도 새 참조라면 달라진 props입니다.
() => handler()
부모 렌더 때마다 새 함수가 생기면 memo를 통과하지 못합니다.
의존성이 바뀔 때만 새 참조를 만들면 다음 부모 렌더에서 skip 가능성이 생깁니다.
계산 결과와 객체, 배열 참조를 고정합니다.
이벤트 핸들러 함수 참조를 고정합니다.
Profiler로 비교 비용보다 렌더 절감이 큰지 확인합니다.