vuex 调用actions
时间: 2023-10-03 11:11:14 浏览: 90
在使用 Vuex 的时候,一般情况下会定义一些 actions,用来处理异步操作或者提交 mutations。在组件中调用 actions,需要通过 `this.$store.dispatch` 方法来触发。
例如,在组件中调用名为 `fetchData` 的 action,可以这样写:
```
this.$store.dispatch('fetchData', payload)
```
其中,`fetchData` 是你定义的 action 的名称,`payload` 是传递给 action 的参数。
在 action 中,可以通过 `context.commit` 方法来提交 mutations,也可以通过 `context.state`、`context.getters` 来获取 state 和 getters。例如:
```
actions: {
fetchData ({ commit }, payload) {
// 异步操作
axios.get('/data')
.then(response => {
// 提交 mutation
commit('setData', response.data)
})
.catch(error => {
console.log(error)
})
}
}
```
在上面的代码中,`fetchData` 是一个 action 的名称,`commit` 是一个上下文对象,可以通过它来提交 mutations。在异步操作中,通过 axios 发送了一个 GET 请求,获取后端数据。在请求成功后,通过 `commit` 方法提交名为 `setData` 的 mutation,并将获取的数据作为参数传递给它。当 mutation 执行时,会修改 state 中的数据,从而更新组件的视图。
阅读全文