当前位置: 首页 > article >正文

vue3怎么定义计算属性

在 Vue 3 中,你可以使用 computed 函数来定义计算属性。computed 函数来自 Vue 3 的组合式 API,它有两种使用方式:只读计算属性和可写计算属性,下面分别介绍这两种方式。

只读计算属性


只读计算属性是最常见的用法,它接收一个 getter 函数作为参数,返回一个只读的响应式引用。以下是一个简单的示例:

<template>
  <div>
    <p>First name: {{ firstName }}</p>
    <p>Last name: {{ lastName }}</p>
    <!-- 使用计算属性 -->
    <p>Full name: {{ fullName }}</p>
  </div>
</template>

<script>
import { defineComponent, ref, computed } from 'vue';

export default defineComponent({
  setup() {
    // 定义响应式数据
    const firstName = ref('John');
    const lastName = ref('Doe');

    // 定义只读计算属性
    const fullName = computed(() => {
      return `${firstName.value} ${lastName.value}`;
    });

    return {
      firstName,
      lastName,
      fullName
    };
  }
});
</script>

在上述代码中:

  • 引入 computed 函数。
  • 在 setup 函数中,使用 ref 创建响应式数据 firstName 和 lastName。
  • 使用 computed 函数定义只读计算属性 fullName,传入一个箭头函数作为 getter,该函数返回 firstName 和 lastName 拼接后的字符串。
  • 将 firstName、lastName 和 fullName 返回,以便在模板中使用。


可写计算属性

可写计算属性需要传入一个包含 get 和 set 方法的对象,get 方法用于获取计算属性的值,set 方法用于设置计算属性的值。以下是一个可写计算属性的示例:

<template>
  <div>
    <p>First name: {{ firstName }}</p>
    <p>Last name: {{ lastName }}</p>
    <!-- 可写计算属性 -->
    <p>Full name: {{ fullName }}</p>
    <button @click="updateFullName">Update Full Name</button>
  </div>
</template>

<script>
import { defineComponent, ref, computed } from 'vue';

export default defineComponent({
  setup() {
    const firstName = ref('John');
    const lastName = ref('Doe');

    // 定义可写计算属性
    const fullName = computed({
      get() {
        return `${firstName.value} ${lastName.value}`;
      },
      set(newValue) {
        const names = newValue.split(' ');
        firstName.value = names[0];
        lastName.value = names[1];
      }
    });

    const updateFullName = () => {
      fullName.value = 'Jane Smith';
    };

    return {
      firstName,
      lastName,
      fullName,
      updateFullName
    };
  }
});
</script>

在上述代码中:

  • 使用 computed 函数传入一个包含 get 和 set 方法的对象来定义可写计算属性 fullName。
  • get 方法返回 firstName 和 lastName 拼接后的字符串。
  • set 方法接收一个新值,将其按空格分割成两部分,分别赋值给 firstName 和 lastName。
  • 定义一个 updateFullName 方法,用于更新 fullName 的值。

通过上述两种方式,你可以在 Vue 3 中灵活地定义计算属性。

原文地址:https://blog.csdn.net/kfei666/article/details/146456501
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/597838.html

相关文章:

  • Java中synchronized 和 Lock
  • 23种设计模式-创建型模式-抽象工厂
  • 数据结构(C\C++)——顺序表
  • C++::多态
  • 各软件快捷键
  • Unity-AI-Deepseek生成的生成模型代码
  • Matlab:二维绘图篇——plot绘图命令(二)
  • 编译原理——词法分析
  • Linux作业2——有关文件系统权限的练习
  • 物化视图详解:数据库性能优化的利器
  • 美制 / 英制单位换算/公制/帝国制 单位转换速查表
  • 某地基坑及周边建筑物自动化监测项目
  • ctfshow——web入门166~170
  • Can通信流程
  • 蓝桥杯11届 门牌制作
  • k8s问题排查
  • 表达式括号匹配(stack)(信息学奥赛一本通-1353)
  • Android笔记之项目引用第三方库(如:Github等)
  • 施耐德 Unity Pro 项目配置
  • 前后端开发中,图片上传到不同格式(二进制数据ORbase64编码)