React · Reducer

useReducer action과 state transition 문서화

useReducer는 state 변경을 한곳에 모아, 사용자 사건이 어떤 다음 상태로 이어지는지 테스트 가능한 전이표로 만드는 훅이다.

01

모델 작성

함께 바뀌는 값과 가능한 상태를 객체 또는 union처럼 정리한다.

02

사건 이름

setX보다 submitted, loaded, failed처럼 의미 있는 action을 만든다.

03

전이 구현

reducer는 이전 state와 action만으로 새 state를 반환한다.

04

컴포넌트 연결

UI는 dispatch로 사건을 보내고 전이 세부 로직을 알지 않아도 된다.

fieldChanged
부분 입력 payload로 field와 value를 받아 form state 갱신
검증과 결합 여부 결정
submitted
요청 시작 pending true, error 초기화, touched 전체 표시
비동기는 reducer 밖
succeeded
성공 결과 저장과 pending 해제를 같은 전이로 처리
상태 모양 일관
failed
실패 field error와 global error를 구분해 저장
재시도 가능성 표시

순수 함수 · 사건 이름 · 기본 처리 점검

순수 함수 reducer 안에서 fetch나 localStorage 접근을 하지 않는다.
사건 이름 구현 조작이 아니라 사용자의 사건을 표현한다.
기본 처리 알 수 없는 action을 조용히 삼키지 않는다.
테스트 reducer 전이를 컴포넌트 없이 검증할 수 있다.