vuex 中actions中的函数a如何嗲用actions中函数b
时间: 2024-02-27 19:57:50 浏览: 65
在Vuex中,actions中的函数可以通过context.dispatch()方法来调用同一个模块下的其他actions中的函数。
具体来说,可以在actions中使用context.dispatch()方法来触发其他actions中的方法,例如:
```javascript
const actions = {
actionA({ commit, dispatch }) {
dispatch('actionB') // 调用同一模块下的actionB方法
},
actionB({ commit }) {
// ...
}
}
```
在上面的代码中,actions中的actionA方法会通过context.dispatch()方法来调用同一模块下的actionB方法。需要注意的是,actions中的方法必须通过store.dispatch()来调用。
另外,如果需要在一个模块中调用另一个模块下的actions中的方法,可以通过rootState和rootGetters来访问其他模块下的state和getters。例如:
```javascript
const actions = {
actionA({ commit, dispatch, rootState, rootGetters }) {
dispatch('otherModule/actionB', null, { root: true }) // 调用其他模块下的actionB方法
const otherModuleState = rootState.otherModule.stateA // 访问其他模块下的stateA
const otherModuleGetter = rootGetters['otherModule/getterB'] // 访问其他模块下的getterB
}
}
```
在上面的代码中,actions中的actionA方法通过dispatch()方法和rootState/rootGetters来调用其他模块下的actionB方法和访问其他模块下的state/getters。需要注意的是,在调用其他模块下的方法时,需要在dispatch()方法的第三个参数中加上 { root: true },表示这是一个根模块。
阅读全文