Vuex的五个核心属性
分布是 State、Getter、Mutation、Action、Module
- State state为单一状态树,在state中需要定义我们所需要管理的数组、对象、字符串等等,只有在这里定义了,在Vue.js的组件中才能获取你定义的这个对象的状态。
2)Getter
getter有点类似Vue.js的计算属性,当我们需要从store的state中派生出一些状态,那么我们就需要使用getter,getter会接收state作为第一个参数,而且getter的返回值会根据它的依赖被缓存起来,只有getter中的依赖值(state中某个需要派生状态的值)发生改变的时候才会被重新计算。
3)Mutation
更改store中state状态的唯一方法就是提交mutation,就很类似事件。每个mutation都有一个字符串的事件类型和一个回调函数,我们需要改变state中的值就需要在回调函数中改变。我们要执行这个回调函数,那么我们需要执行一个相应的调用方法: store.commit。
4)Active
action其实可以提交mutation,在action中执行store.commit,而且action中可以有任何的异步操作。在页面中如果我们要调用这个action,则需要执行store.dispatch。
5)Module
module其实只是解决了当state中复杂冗余的时候,module可以将store分隔成模块,每个模块中拥有自己的state,mutation,action和getter。