- index.js:入口文件
- state.js:存储状态。也就是变量。
- getters.js:派生状态。也能够理解为set、get中的get。有两个可选参数,state、getters分别能够获取state中的变量和其它getters。和vue中的computed相似。
- mutations.js:提交状态修改。能够理解为set、get中的set。每个mutation都有一个字符串的事件类型和回调函数。第一个参数默认为state。vuex中惟一修改state的方式,不支持异步操做。和vue中的methods相似。
- mutation-types.js:存储于mutations相关的字符串常量,方便检测和管理。
- actions.js:和mutations相似。支持异步操做,也能够是对mutations的封装。
Mutation:
ADD_DB(state) {
state.cartList.forEach(function(item) {
item.num = 0;
});
},
action
sortNumStatus: ({
commit
}) => {
commit(types.ADD_DB);
},
通過action中的commit(xxx)方法觸發mutation中的xxx(state) {state.xxx = xxx} 來更改state中的數據
如何觸發action呢
...mapActions([
'sortNumStatus'
]),
或者直接
methods:{
this.$store.dispath('sortNumStatus',arr);
}
getters能够全局操做更改state中數據
getters:
module.exports = {
getInfos(state) {
state.cartInfos.total_price = 0;
state.cartInfos.total_nums = 0;
return state.cartInfos;
},
getCartList(state) {
return state.cartList;
}
};
調用getters中的全局的方法
computed:{
...mapGetters([
'xxxxx'
])
}