모두CBT

액션, 리듀서에 대해 설명해보세요. 상세 페이지

액션, 리듀서에 대해 설명해보세요.

해설

액션(Action)

상태 변경을 설명하는 명령서 객체

"무엇이 일어났는지"를 설명하는 type과 필요한 데이터(payload) 포함


const incrementAction = { type: 'INCREMENT' }

const addTodoAction = {

type: 'ADD_TODO',

payload: { id: 1, text: '할일 추가' }

}



리듀서(Reducer)

현재 상태와 액션을 받아서 새로운 상태를 반환하는 순수 함수

"상태를 어떻게 변경할지"의 로직을 담당


const counterReducer = (state = { count: 0 }, action) => {

switch (action.type) {

case 'INCREMENT':

return { count: state.count + 1 }

case 'DECREMENT':

return { count: state.count - 1 }

default:

return state

}

}


플로우

컴포넌트에서 액션 디스패치 리듀서가 현재 상태 + 액션으로 새 상태 계산 스토어 업데이트 후 구독 중인 컴포넌트들 리렌더링

특징:

예측 가능: 같은 입력에 항상 같은 출력

불변성: 기존 상태를 변경하지 않고 새 객체 반환

디버깅 용이: 모든 상태 변경이 액션으로 기록됨

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.