这篇文章主要介绍了vuex?mutation?action同级调用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


mutation action同级调用mutatiion同级调用:this.commitaction同级调用:this.dispatch// 同步const mutations = { add(state, payload) { state.countB += 10 }, plus(state, payload) { this.commit('add') }}// 异步(定时器等)const actions = { addCountBAction({ state, commit }, payload) { commit('add', payload) }, plusCountBToAAction({ state, commit, dispatch, getters, rootState, rootGetters }, payload) { // https://vuex.vuejs.org/zh/api/#actions setTimeout(() =gt; { dispatch('addCountBAction') }, 2000); // 或者 thiis.dispatch('addCountBAction') }}


mutation和action区别const store = new Vuex.Store({  state: {    count: 0  },  mutations: {    increment (state) {      state.count++    }  },  actions: {    increment (context) {      context.commit('increment')    }  }})


1、流程顺序

ldquo对应视图;gt;修改状态;分成两部分,视图触发动作,动作触发突变。


2、角色定位

基于过程顺序,两者扮演不同的角色。

Mutation:专注于修改State,理论上是修改State的唯一途径。Action:业务代码、异步请求。


3、限制

不同的角色有不同的限制。

Mutation:必须同步执行。Action:可以异步,但不能直接操作State。

以上个人经验,希望能给你一个参考,也希望你能支持一下搜源网。