새 객체나 함수 하나가 memo의 건너뛰기를 깨뜨린다

부모가 다시 렌더되면 React.memo는 각 prop을 이전 값과 비교한다. 내용이 같아도 참조가 새로 생기면 다른 값으로 판단한다.

01 · 부모 렌더

다음 props가 만들어진다

부모의 다른 상태만 바뀌어도 자식에게 전달할 값을 다시 계산한다.

02 · 얕은 비교

각 prop을 Object.is로 본다

객체 내부를 재귀적으로 읽지 않고 값 또는 참조가 같은지 확인한다.

모두 같음

자식 렌더를 건너뛴다

원시값과 객체·함수 참조가 모두 안정적일 때 이전 결과를 재사용한다.

하나라도 다름

자식을 다시 렌더한다

렌더마다 만든 객체 literal이나 익명 함수는 새 참조이므로 비교를 통과하지 못한다.

최적화 연결: 실제 병목이 있고 memo 자식에 참조형 props를 넘길 때만 useMemo·useCallback으로 참조 안정화를 검토한다.