counter update

setCount 연속 호출은 값 업데이트와 함수 업데이트를 구분해야 한다

같은 렌더 안의 count는 고정된 스냅샷이다. 이전 결과를 이어 계산해야 하면 setCount(c => c + 1) 형태를 쓴다.

값 업데이트 setCount(count + 1)현재 렌더의 count 사용여러 번 호출해도 같은 값 기준
함수 업데이트 setCount(c => c + 1)큐의 이전 결과 사용연속 증가에 안전
상황
권장
이유
한 번 갱신
값 업데이트 가능
현재 값 기준이면 충분
연속 증가
함수 업데이트
큐 결과를 이어 계산
비동기 이벤트
함수 업데이트
stale 값 위험 감소
객체 state
spread 또는 reducer
불변성 유지
핵심 현재 렌더 값을 읽는 업데이트와 이전 업데이트 결과를 읽는 업데이트는 결과가 다르다.