说一说Vuex是什么,每个属性是干嘛的,如何使用 ?
要点: state、mutations、getters、actions、module、store.commit、store.dispatch
答:
Vuex是用来集中管理项目公共数据的。
Vuex 有state、mutations 、getters、actions、module属性。
- state: 存储公共管理的数据
- mutations: 定义改变state中数据的方法。(备注:不要在mutation中的方法中写异步方法ajax,那样数据就不可跟踪了 )
- getters: 定义 store 的计算属性。(就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。)
- action: 类似于 mutation,不同在于:Action 提交的是 mutation,而不是直接变更状态。Action 可以包含任意异步操作。
- moudle: 将store分割成模块。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块,从上至下进行同样方式的分割。
使用方法:
- state :直接以对象方式添加属性
- mutations :通过
store.commit调用 - action:通过
store.dispatch方法触发 - getters:直接通过store.getters.调用
可以使用mapState、mapMutations、mapAction、mapGetters一次性获取每个属性下对应的多个方法。 VueX在大型项目中比较常用,非关系组件传递数据比较方便。