You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue3中如何在一个计算属性里访问另一个计算属性的对象属性

Vue3中访问计算属性返回对象的属性时出现undefined的解决方法

问题核心在于:Vue的computed返回的是响应式Ref对象,而非直接的原始值。你直接写message.body时,是在访问Ref容器本身的body属性(这个属性根本不存在),而非它内部包裹的对象的body属性,所以会得到undefined。

修正方法很直接:在msg的计算属性里,先通过.value拿到message返回的对象,再访问其body属性:

<script setup>
import { computed } from 'vue'

const message = computed(() => {
  return {
    body: 'howdy'
  }
})

// 修正:先取message.value拿到目标对象,再访问body属性
const msg = computed(() => {
  return message.value.body
})
</script>

<template>
  <h1>{{ msg }}</h1>
</template>

额外说明:

  • 计算属性返回的Ref对象在<template>中会被Vue自动解包,所以模板里直接写{{ msg }}即可,不需要加.value
  • 只有在<script setup>的逻辑代码里,才需要手动用.value访问Ref对象的内部值

内容的提问来源于stack exchange,提问作者k3davis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 04:40:23