1. export default {
  2. // 命名空间
  3. namespace: 'prducation',
  4. // 存放数据的state
  5. state: {
  6. age: '24'
  7. }
  8. // 修改数据的方法
  9. reducers:{
  10. // 第一个参数是state仓库的状态,第二个是派发的action
  11. changeState( state, action){
  12. return {...state,...action.payload}
  13. }
  14. }
  15. // 处理异步的方法
  16. effects: {
  17. *getApi({payload}, { sellect, call, put}) {
  18. // sellect 用来获取仓库数据的方法
  19. const age_two = yield sellect( state => state.age);
  20. // call 用于调用异步逻辑,支持 promise 。
  21. const result = yield call(fetch, '/todos');
  22. // put用于触发action
  23. yield put({
  24. type: 'prducation/changeState',
  25. payload
  26. })
  27. }
  28. }
  29. // 自执行方法
  30. subscriptions: {
  31. setup({dispatch, history}) {
  32. }
  33. }
  34. }

如何在页面中使用仓库的数据和方法

  • 通过从dva中引入connect高阶组件,然后利用mapStateToProps和mapDispatchToProps

dva相比较redux来说省去了麻烦的action的type,dva的type就是模块中的方法名字