useState에 넣는 값은 첫 렌더에서 사용할 기본 상태이며 이후 렌더 사이에 보존됩니다.
상태 루프
useState 값 보존
클릭, 입력, 토글처럼 사용자 행동 뒤에도 기억되어야 하는 값은 state로 두고 setter로 다음 렌더를 요청합니다.
상태를 바꿀 때는 직접 대입이 아니라 setter 함수를 통해 변경 의도를 전달합니다.
객체와 배열은 기존 참조를 바꾸지 말고 새 값을 만들어 렌더 변화를 분명히 합니다.
초깃값이 화면의 첫 상태와 맞는지 확인한다.
불리언 state는 이전 값 반전으로 표현할 수 있다.
목록 state는 push보다 새 배열 생성을 우선한다.
여러 setter가 렌더 타이밍에 묶일 수 있음을 기억한다.