vuex简单整理

  • 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'
        ])
    }
相关文章
相关标签/搜索