useState Deep Dive

상태 변경 점검 기준

setter에 무엇을 넘길지 판단하면 stale state와 불변성 실수를 빠르게 줄일 수 있습니다.

이전 값에 의존

함수형 업데이트

setCount(prev => prev + 1)

연속 클릭이나 여러 setter가 이어질 때 최신 이전 값을 기준으로 계산합니다.

객체와 배열 변경

새 참조 만들기

map, filter, ...spread

원본을 직접 바꾸지 않고 새 객체나 새 배열을 넘겨 리렌더링 기준을 분명히 합니다.

초기 계산이 무거움

지연 초기화

useState(() => load())

첫 마운트에서만 실행되어 리렌더링마다 같은 계산을 반복하지 않습니다.

OK

점검 순서는 간단합니다. 다음 상태가 이전 상태를 읽으면 콜백, 중첩 자료를 바꾸면 새 참조, 초기값이 비싸면 함수 전달입니다.