- 애플리케이션 상태(State)를 용이하게 관리하기 위한 프레임워크(오픈소스 JavaScript 라이브러리)
{
type: "EXAMPLE_TYPE",
payload: amount
}
const withdrawMoney = (param) => {
return {
type: WITHDRAW_MONEY,
payload: amount
}
}
state
- 데이터 및 UI 상태 등 어플리케이션을 유지하기 위한 정보
- state의 변경 <=> View의 변경
export sampleReducer (state=initialState, action) {
switch (action.type) {
case WITHDRAW_MONEY:
return {
...state,
amount: payload
}
default:
return state;
}
}
Single Source of Truth (신뢰 가능한 유일한 정보원)
어플리케이션의 모든 state는 단일 store에서 관리
State in Read-Only (state는 읽기 전용)
state의 변경은 반드시 action을 통해서
Changes are Made with Pure Functions
(변경은 순수함수를 통해서만) Reducer는 순수함수로 정의 인수변경 x, API 호출 x, 네트워크 요청 x, 순수함수가 아닌 함수(Date.now(), Math.random)의 호출 x