vue dispatch 异步回调
时间: 2023-07-04 16:30:44 浏览: 96
在 Vue.js 中,可以通过 dispatch 方法来触发一个事件,该事件可以是一个异步回调。
具体实现方法如下:
在组件中使用 $store.dispatch 方法来触发一个异步 action,例如:
```javascript
this.$store.dispatch('fetchData', payload)
```
其中,`fetchData` 是一个 action,`payload` 是一个对象,包含需要传递的参数。
在 store 中定义 `fetchData` action,例如:
```javascript
actions: {
fetchData ({ commit }, payload) {
// 异步操作,例如向服务器请求数据
fetch('https://example.com/data')
.then(response => response.json())
.then(data => {
// 异步操作完成,提交 mutation 修改 state
commit('setData', data)
})
}
}
```
在 `fetchData` action 中,可以执行异步操作,例如向服务器请求数据。当异步操作完成后,可以通过提交一个 mutation 来修改 state。
例如,在上面的代码中,当异步操作完成后,通过提交 `setData` mutation 来修改 state。`setData` mutation 的定义如下:
```javascript
mutations: {
setData (state, data) {
state.data = data
}
}
```
这样,当 `fetchData` action 执行完成后,会自动触发 `setData` mutation,从而更新 state 中的 data 值。
阅读全文