USEREDUCER

상태 변경 규칙을 컴포넌트 밖으로 꺼낸다

복잡한 상태는 이벤트마다 직접 수정하기보다 action을 보내고 reducer가 다음 상태를 계산하게 만들면 흐름이 선명해진다.

현재 state
+
action
새 state
reducer

순수 계산 함수

입력 상태와 action만 보고 새 상태를 반환한다. 직접 변경은 피한다.

dispatch

의도를 보낸다

컴포넌트는 어떻게 바꿀지가 아니라 무슨 일이 일어났는지를 보낸다.

initialState

초기 모양 고정

상태 구조가 분명해져 조건 분기와 테스트가 쉬워진다.

vs useState

전환이 많을 때

여러 하위 상태가 함께 바뀌거나 action 종류가 늘면 useReducer가 유리하다.