this.$store.dispatch如何实现回调
时间: 2024-06-05 10:04:47 浏览: 132
Vue.js 3.X开发经验及技巧汇总
this.$store.dispatch是Vue.js的Vuex插件提供的一个方法,用于分发一个action来修改状态。该方法实现回调可以通过在action中使用Promise或async/await来实现。
在action中,可以通过返回一个Promise对象来实现回调。例如:
```
actions: {
fetchData({ commit }) {
return axios.get('http://example.com/data')
.then(response => {
commit('setFetchedData', response.data)
})
.catch(error => {
console.log(error)
})
}
}
```
在上面的代码中,fetchData action返回了axios.get()的Promise对象。在组件中使用this.$store.dispatch()来分发该action,并通过.then()来获取该Promise对象的返回值。
另一种实现回调的方式是使用async/await语法。例如:
```
actions: {
async fetchData({ commit }) {
try {
const response = await axios.get('http://example.com/data')
commit('setFetchedData', response.data)
} catch (error) {
console.log(error)
}
}
}
```
在上面的代码中,fetchData action使用了async/await语法,将axios.get()请求的Promise对象赋值给了response变量,并通过try/catch来捕获错误。在组件中使用this.$store.dispatch()来分发该action,并通过await来获取该Promise对象的返回值。
阅读全文