众所周知一般来说,这个计算属性是同步计算获取得到,这个也是计算属性的初衷,但是你要是非要在里面 关联一些异步的东西也不是不可以哈。
面试的时候,会问到这个问题,计算属性能不能涉及一些异步的东西,也不能一致头铁的说,必须不能,只能是同步。
计算确实是同步的写法,但返回的数据可以走异步的情况。
也并不是直接异步,可以通过其他的方式实现一种异步的计算方式。
可能面试官想要的是这种回答吧
<script setup>
import { onMounted, computed, ref } from "vue"
const name = ref("zhaoyun")
onMounted(() => {
setTimeout(() => {
name.value = "zhangfei"
}, 3000)
})
const testAsync = computed(() => name.value === "zhangfei" ? "zhangfei".toUpperCase() : "....等待")
</script>
这段代码请品味下
我们异步更改 name的数值。其实这里也可以 放一个网络请求 我只是用 宏任务进行模拟了
刚开始屏幕上显示一个 。。。等待中。 等数据回来的时候然后就自动切换成另一个 大写的 ZHANGFEI
写法上是同步 但是 是不是有一丝异步的味道 你细品
这个可能也是一种成长吧, 加油吧和我一样的前端菜鸟
闲来无事继续 耕我的一亩三分地。
关注我 持续更新 前端知识