vuex 学习笔记

1. 概念

  • state 是用来存状态一个对象
  • getter 是派生出的状态,想当与 动态计算属性函数
  • mutation 是改变状态的方法,但是不能直接调用,需要用 store.commit 方法来执行,方法内部是同步来修改 state 的,不能是异步的。mutation 的第一个参数是 state,第二个参数是 payload,第三个参数是rootState,第四个参数是rootGetter。commit 的第一个参数是mutation的名称,第二个是 payload 对象,第三个如果是触发全局命名空间的 mutation,传递 {root:true}
  • action 支持异步操作,提交的是 mutation,需要用 store.dispatch 方法来执行、因为可以执行 Promise 的 action 返回值,并且本身返回 Promise ,可以控制异步流程。action 第一个参数是 context 里面包含 state,getters,rootState,rootGetter,第二个参数是payload。dispatch 的第一个参数是mutation的名称,第二个是 payload 对象,第三个触发全局命名空间的 action的时候传递 {root:true}
  • module 是表示上述的对象可以分不同模块放在一起,可以嵌套多层 module,可以开启命名空间,子 module 默认继承父模块命名空间,也可以继续开启当前层的命名空间

2. 子模块内发布全局的 action

  • action 为一个对象,{root:true,handler(context,payload){}},handler 为 action 的函数

3. …mapState

4. …mapGetters

  • 第一个参数可以是模块的路径,如果不给第一个参数,则表示是全局的 getters
  • 如果没有第一个参数,第二个参数就放在第一个参数上,参数可以是对象,或者数组。如果是对象表示用 key 为新的名称,value 可以是参数为 state 的函数返回一个state 的对象,也可以是字符串,字符串表示的是state 中的属性名;如果是数组,表示的是要数组中那些名字的

5. …mapActions

Leave a Comment

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据