사용자 의도를 type과 payload로 표현해 어떤 변경이 일어났는지 명확히 남깁니다.
reducer model
useReducer 상태 변경 정리
상태 전이가 여러 종류로 늘어나면 useReducer가 현재 상태와 action을 받아 다음 상태를 만드는 규칙을 한곳에 모읍니다.
현재 state와 action을 받아 불변성을 지키며 다음 state를 반환합니다.
reducer 결과와 dispatch를 Context로 나누면 깊은 컴포넌트에서도 상태 전이를 요청할 수 있습니다.
action type 이름이 실제 사용자 동작을 설명하는지 본다.
reducer 안에서 외부 요청이나 임의 값을 만들지 않는다.
처리하지 않은 action의 기본 반환을 명확히 둔다.
컴포넌트는 변경 규칙보다 action 발행에 집중한다.