전이 목록화
increment, reset, submitStart, submitFail처럼 상태를 바꾸는 사건을 먼저 적는다.
setter 여러 개보다 사건 이름이 읽기 좋다useReducer는 useState의 복잡한 버전이 아니다. 여러 이벤트가 같은 상태를 바꾸거나, 상태 조각들이 함께 움직이거나, 다음 상태가 이전 상태와 action에 강하게 의존할 때 전이를 reducer로 모아 읽기 쉽게 만든다.
increment, reset, submitStart, submitFail처럼 상태를 바꾸는 사건을 먼저 적는다.
setter 여러 개보다 사건 이름이 읽기 좋다type과 payload가 어떤 상태 전이에 필요한지 좁게 설계한다.
payload를 any처럼 쓰면 reducer 장점이 줄어든다reducer 안에서는 API 호출, 날짜 생성, 랜덤값 같은 부수효과를 넣지 않는다.
같은 입력은 같은 출력을 내야 한다비싼 초기 상태 계산은 lazy init으로 한 번만 실행되게 한다.
props 변화와 초기화 재실행을 혼동하지 않는다dispatch를 이벤트 핸들러에서 호출하고, effect는 상태 변화의 결과로 별도 처리한다.
reducer는 상태 계산만 맡는다