VUE中computed不支持异步
时间: 2023-12-26 20:22:09 浏览: 257
watch和computed的区别经典案例
Vue中的computed属性确实不支持异步操作,因为computed属性是通过缓存结果来提高性能的,如果其中包含异步操作的话,就无法得到正确的缓存结果。
但是,Vue中提供了watch属性,可以用来监听数据变化,并执行异步操作。可以通过在watch属性中监听数据变化,并在回调函数中执行异步操作来实现类似于computed的功能。
例如:
```javascript
new Vue({
data: {
message: '',
},
watch: {
message: {
handler: function(val) {
// 异步操作
this.asyncFunc(val).then(res => {
// 更新数据
this.result = res;
});
},
immediate: true // 初始化时立即执行
},
},
computed: {
// ...
},
methods: {
asyncFunc(val) {
// 异步操作
},
},
});
```
在上面的例子中,watch属性监听message数据的变化,并在回调函数中执行异步操作,最终将结果保存到result数据中。同时,computed属性也可以继续使用,以及异步操作也可以通过methods属性中的方法来实现。
阅读全文