Vue3 的计算属性(computed)并非只能在模板中使用,其返回值可以在组件逻辑、其他计算属性或外部函数中自由访问。以下是具体说明:

一、计算属性的本质与使用场景

  • 本质

    • computed 返回的是一个响应式的 ref 对象,可通过 .value 访问值。例如:
      const fullName = computed(() => `${firstName.value} ${lastName.value}`);
      console.log(fullName.value); // 直接访问计算结果
  • 适用场景

    • 模板外的逻辑处理:在脚本部分监听计算属性的变化,或作为其他函数的参数。
    • 依赖其他计算属性:多个计算属性之间可以互相依赖。

二、可写计算属性的场景

若需在非模板中修改计算属性的值,需通过 getter/setter 定义可写状态:

const count = ref(0);
const doubleCount = computed({
  get() { return count.value * 2; },
  set(newVal) { count.value = newVal / 2; }
});

// 在逻辑中修改
doubleCount.value = 6; // 触发 setter,count 更新为 3

总之,计算属性的设计初衷是封装响应式依赖关系,但其使用范围不仅限于模板。开发者可根据业务需求灵活选择访问方式。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐