<vuex第三弹>vuex之actions(前端网备份)
index.js
首先在store里面有两种写法
乍一眼看上去感觉多此一举,我们直接分发 mutation 岂不更方便?实际上并非如此,还记得 mutation 必须同步执行这个限制么?Action 就不受约束!我们可以在 action 内部执行异步操作:
const actions={ //context在actions里面代表着整个的store jiaplus(context){ context.commit('jia',{a:1}); setTimeout(() => { context.commit('jian'); }, 1000); console.log('我先被执行了') }, jianplus({commit}){ commit('jian') } } export default new Vuex.Store({ state, mutations, getters, actions }) vue <p> <button @click="jiaplus">+plus</button> <button @click="jianplus">-plus</button> </p> import { mapState,mapMutations,mapGetters,mapActions } from 'vuex' export default { name:'te', data(){ return{ counts:0 } }, computed:{ ...mapState([ 'count' ]), }, methods:{ ...mapActions([ 'jiaplus', ]), ...mapActions({ jianplus:'jianplus' }) } }