📜  vuex 从另一个动作调用动作 (1)

📅  最后修改于: 2023-12-03 15:35:39.194000             🧑  作者: Mango

Vuex 从另一个动作调用动作

在Vuex中,我们可以通过dispatch从一个动作中调用另一个动作。这样可以使我们的代码更加模块化和易于维护。

dispatch方法

我们可以通过调用store.dispatch('actionName')来触发一个动作。这个动作可以是一个提交(commit)或一个分发(dispatch)。如果动作是一个分发,那么我们可以传递一个payload作为参数。示例代码如下:

// 定义一个叫做incrementBy的动作,接受一个payload参数
const actions = {
  incrementBy({ commit }, payload) {
    commit('increment', payload);
  },
  decrementBy({ commit }, payload) {
    commit('decrement', payload);
  }
};

// 在另一个动作中调用incrementBy动作
const actions = {
  doubleIncrement({ dispatch }, payload) {
    dispatch('incrementBy', payload * 2);
  },
  doubleDecrement({ dispatch }, payload) {
    dispatch('decrementBy', payload * 2);
  }
};

上面的代码展示了如何在某个动作中调用另一个动作。注意,我们使用dispatch来调用incrementBy和decrementBy这两个动作。

总结

在Vuex中,我们可以通过dispatch从一个动作中调用另一个动作。这种做法可以使我们的代码结构更加清晰,易于维护。你可以在动作中传递payload参数,这样在被调用的动作中可以使用这个参数来执行相关操作。