vue中计算属性是否可以 异步获取?

众所周知一般来说,这个计算属性是同步计算获取得到,这个也是计算属性的初衷,但是你要是非要在里面 关联一些异步的东西也不是不可以哈。

面试的时候,会问到这个问题,计算属性能不能涉及一些异步的东西,也不能一致头铁的说,必须不能,只能是同步。

计算确实是同步的写法,但返回的数据可以走异步的情况。
也并不是直接异步,可以通过其他的方式实现一种异步的计算方式。
可能面试官想要的是这种回答吧

<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

写法上是同步 但是 是不是有一丝异步的味道 你细品

这个可能也是一种成长吧, 加油吧和我一样的前端菜鸟

闲来无事继续 耕我的一亩三分地。

关注我 持续更新 前端知识

你可能感兴趣的:(vue.js,前端,javascript)