export default { // 命名空间 namespace: 'prducation', // 存放数据的state state: { age: '24' } // 修改数据的方法 reducers:{ // 第一个参数是state仓库的状态,第二个是派发的action changeState( state, action){ return {...state,...action.payload} } } // 处理异步的方法 effects: { *getApi({payload}, { sellect, call, put}) { // sellect 用来获取仓库数据的方法 const age_two = yield sellect( state => state.age); // call 用于调用异步逻辑,支持 promise 。 const result = yield call(fetch, '/todos'); // put用于触发action yield put({ type: 'prducation/changeState', payload }) } } // 自执行方法 subscriptions: { setup({dispatch, history}) { } }}
如何在页面中使用仓库的数据和方法
- 通过从dva中引入connect高阶组件,然后利用mapStateToProps和mapDispatchToProps
dva相比较redux来说省去了麻烦的action的type,dva的type就是模块中的方法名字