redux-actions
有兩大法寶createAction
和handleActions
.redux
原來建立action
:code
const startAction = () => ({ type: START });
使用redux-actions
建立action
:it
import { createAction } from 'redux-actions'; const startAction = createAction(START);
原來reducer
操做state
寫法要使用switch
或if else
來匹配:io
function timer(state = defaultState, action) { switch (action.type) { case START: return { ...state, runStatus: true }; case STOP: return { ...state, runStatus: false }; case RESET: return { ...state, seconds: 0 }; case RUN_TIMER: return { ...state, seconds: state.seconds + 1 }; default: return state; } }
使用redux-actions
`reducer操做
state`:function
const timer = handleActions({ START: (state, action) => ({ ...state, runStatus: true }), STOP: (state, action) => ({ ...state, runStatus: false }), RESET: (state, action) => ({ ...state, seconds: 0 }), RUN_TIMER: (state, action) => ({ ...state, seconds: state.seconds + 1 }), }, defaultState);