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