로딩
요청 처리 중입니다...

렌더링이 왜 일어나는가 - 리렌더링 조건 정리

 렌더링이 왜 일어나는가 - 리렌더링 조건 정리

`memo` 를 붙였는데도 리렌더링이 멈추지 않는다. `useCallback` 을 썼는데도 자식이 계속 재렌더된다.

이런 경험이 쌓이면 결국 한 가지 질문으로 돌아온다. "React는 언제 렌더링을 트리거하는가?""

state가 바뀌었을 때 부모가 리렌더됐을 때 구독하는 context가 바뀌었을 때 props가 바뀌었을 때가 아니다. 부모가 리렌더되면, props가 그대로여도 자식은 기본적으로 같이 실행된다.

State 변경 const [count, setCount] = useState(0); setCount(1); // 리렌더 O setCount(0); // count가 이미 0이면 리렌더 - X(bail-out) React는 `Object.js`로 이전 state와 비교한다. primitive 값은 문제없지만, 객체·배열은 주의가 필요하다. // 같은 참조 — 리렌더 안 일어남 setState(prev => { prev.name = "kim"; // 기존 객체를 직접 수정 re...