Computed在Vue2、Vue3写法的不同

news2025/1/6 22:44:41

在 Vue 2 和 Vue 3 中,computed 的写法有一些区别,特别是在 Vue 3 中新增了组合式 API 和 setup 语法糖。以下是不同写法的详细比较:


1. Vue 2 选项式 API

写法

在 Vue 2 中,computed 是一个选项,直接在 computed 对象中定义计算属性。

new Vue({
  el: "#app",
  data() {
    return {
      firstName: "John",
      lastName: "Doe",
    };
  },
  computed: {
    fullName() {
      return `${this.firstName} ${this.lastName}`;
    },
  },
});

特点

  • 使用 this 访问 data 和其他属性。
  • computed 属性会缓存结果,只有依赖发生变化时才会重新计算。

2. Vue 3 选项式 API

写法

Vue 3 选项式 API 的写法和 Vue 2 是一致的,只是组件定义的方式可以用 createApp

import { createApp } from "vue";

createApp({
  data() {
    return {
      firstName: "John",
      lastName: "Doe",
    };
  },
  computed: {
    fullName() {
      return `${this.firstName} ${this.lastName}`;
    },
  },
}).mount("#app");

特点

  • 沿用了 Vue 2 的写法,但可以与 Vue 3 的组合式 API 一起使用。

3. Vue 3 组合式 API

在组合式 API 中,computed 是从 Vue 的核心模块中引入的函数,直接在 setup 中使用。

写法

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

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

    const fullName = computed(() => `${firstName.value} ${lastName.value}`);

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

特点

  • 需要使用 refreactive 来定义响应式数据。
  • computed 返回的是一个响应式的计算结果。
  • 访问时需要 .value

4. Vue 3 setup 语法糖

Vue 3 的 <script setup> 语法糖极大简化了组合式 API 的写法,无需显式 return

写法

<script setup>
import { ref, computed } from "vue";

const firstName = ref("John");
const lastName = ref("Doe");

const fullName = computed(() => `${firstName.value} ${lastName.value}`);
</script>

<template>
  <div>
    <p>First Name: {{ firstName }}</p>
    <p>Last Name: {{ lastName }}</p>
    <p>Full Name: {{ fullName }}</p>
  </div>
</template>

特点

  • 数据、计算属性和方法都自动暴露到模板中,无需 return
  • 更简洁、清晰,适合小型组件或需要频繁使用组合式 API 的场景。

对比总结

特性Vue 2 选项式 APIVue 3 选项式 APIVue 3 组合式 APIVue 3 setup 语法糖
写法computed 对象定义类似 Vue 2使用 computed 函数使用 computed 函数
数据访问方式this.datathis.dataref.value 或解构自动暴露,无需解构
响应式支持内置支持内置支持refreactiverefreactive
代码简洁性中等中等中等最简洁

推荐使用场景

  • Vue 2 和 Vue 3 选项式 API:适合传统的项目或团队习惯于选项式 API 的开发者。
  • Vue 3 组合式 API:适合逻辑复杂、需要重用代码的场景。
  • Vue 3 setup 语法糖:推荐在 Vue 3 中使用,更简洁的写法,更易维护。

如果你已经在使用 Vue 3,建议优先考虑 <script setup> 语法糖来提升开发效率!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2271141.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LLM - 使用 LLaMA-Factory 部署大模型 HTTP 多模态服务 (4)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/144881432 大模型的 HTTP 服务&#xff0c;通过网络接口&#xff0c;提供 AI 模型功能的服务&#xff0c;允许通过发送 HTTP 请求&#xff0c;交互…

数据库知识汇总2

一. 范式 定义&#xff1a;范式是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式&#xff1b; 一个低一级范式的关系模式&#xff0c;通过模式分解&#xff08;schema decomposition&#xff09;可以转换为若干个高一…

TP 钱包插件版本的使用

目前 TokenPocket 的几个平台中&#xff0c;以 ios 和 安卓版本最为常见&#xff0c;其实很少有人知道&#xff0c;浏览器上有一个插件版本的 Tp, 用电脑多的话&#xff0c;这也是一个挺好的选择。 最新版本现在支持Chrome、Brave 浏览器、Edge&#xff08;Firefox及Opera正在…

反向传播算法的偏置更新步骤

偏置的更新步骤 假设我们有一个三层神经网络&#xff08;输入层、隐藏层和输出层&#xff09;&#xff0c;并且每层的激活函数为 sigmoid 函数。我们需要更新隐藏层和输出层的偏置。以下是详细的步骤&#xff1a; 1. 计算误差项&#xff08;Error Term&#xff09; 输出层的…

(二)当人工智能是一个函数,函数形式怎么选择?ChatGPT的函数又是什么?

在上一篇文章中&#xff0c;我们通过二次函数的例子&#xff0c;讲解了如何训练人工智能。今天&#xff0c;让我们进一步探讨&#xff1a;面对不同的实际问题&#xff0c;应该如何选择合适的函数形式&#xff1f; 一、广告推荐系统中的函数选择 1. 业务目标 想象一下&#x…

Vue3 中的插槽

Vue3 中插槽的使用&#xff0c;插槽是 Vue 中的一个特别特性&#xff0c;插槽就是模版内容。例如<h1>标题 1</h1>标题 1 就是插槽&#xff0c;Vue 是无法识别模板内容的&#xff0c;只能通过属性进行传递。Slot 主要包括默认、具名和作用域。Slot开发起来难度不大&…

单元测试3.0+ @RunWith(JMockit.class)+mock+injectable+Expectations

Jmockit使用笔记_基本功能使用Tested_Injectable_Mocked_Expectations_jmockit.class-CSDN博客 静态变量直接赋值就好&#xff0c;没必要mock了 测试框架Jmockit集合junit使用 RunWith(JMockit.class) 写在测试案例类上的注解 Tested 在测试案例中,写在我们要测试的类上…

靶机系列|VULNHUB|DC-3

描述 DC-3 是另一个专门建造的易受攻击实验室&#xff0c;旨在获得渗透测试领域的经验。 与之前的 DC 版本一样&#xff0c;这个版本的设计考虑到了初学者&#xff0c;尽管这一次只有一个标志、一个入口点&#xff0c;根本没有线索。 必须具备 Linux 技能和熟悉 Linux 命令行…

sqlserver sql转HTMM邮件发送

通过sql的形式&#xff0c;把表内数据通过邮件的形式发送出去 declare title varchar(100) DECLARE stat_date CHAR(10),create_time datetime SET stat_dateCONVERT(char(10),GETDATE(),120) SET create_timeDATEADD(MINUTE,-20,GETDATE()) DECLARE xml NVARCHAR (max) DECLAR…

MCU芯片是什么意思_有哪些作用?

MCU(Microcontroller Unit)芯片&#xff0c;即微控制单元&#xff0c;是一种集成了中央处理器(CPU)、存储器(ROM、RAM)以及各种外设接口(如输入输出引脚、定时器、串口等)的集成电路芯片。它通过超大规模集成电路技术&#xff0c;将具有数据处理能力的中央处理器、随机存储器、…

朱姆沃尔特隐身战舰:从失败到威慑

前言 "朱姆沃尔特"号驱逐舰是美国海军雄心勃勃的项目&#xff0c;旨在重塑未来海战。它融合了隐身、自动化和强大火力&#xff0c;然而由于技术问题和预算超支&#xff0c;原计划建造32艘的目标被大幅缩减&#xff0c;最终只建造了三艘。该舰的设计特点包括“穿浪逆船…

【虚拟机】VMware 16图文安装和配置 AlmaLinux OS 9.5 教程

准备工作 下载AlmaLinux ISO文件&#xff1a;从AlmaLinux官方网站&#xff08;https://almalinux.org/&#xff09;下载最新版本的ISO文件。 安装VMware Workstation&#xff1a;确保您的计算机上已安装VMware Workstation。&#xff08;注&#xff1a;我这边使用的是VMware16…

【论文阅读】SCGC : Self-supervised contrastive graph clustering

论文地址&#xff1a;SCGC : Self-supervised contrastive graph clustering - ScienceDirect 代码地址&#xff1a; https://github.com/gayanku/SCGC 摘要 图聚类旨在发现网络中的群体或社区。越来越多的模型使用自编码器&#xff08;autoencoders&#xff09;结合图神经网…

如何利用Logo设计免费生成器创建专业级Logo

在当今的商业世界中&#xff0c;一个好的Logo是品牌身份的象征&#xff0c;它承载着公司的形象与理念。设计一个专业级的Logo不再需要花费大量的金钱和时间&#xff0c;尤其是当我们拥有Logo设计免费生成器这样的工具时。接下来&#xff0c;让我们深入探讨如何利用这些工具来创…

蓝桥杯-Python

1. 冒泡排序 算法步骤&#xff1a; 比较相邻元素&#xff0c;如果第一个大于第二个则交换从左往右遍历一遍&#xff0c;重复第一步&#xff0c;可以保证最大的元素在最后面重复上述操作&#xff0c;可以得到第二大、第三大、… n int(input()) a list(map(int, input()…

数据库实时会话管理,性能问题诊断后的临门一脚

目录 前言 实时会话管理 DBdoctor 实时会话功能 1.实时会话列表 2.结束会话 3.操作历史 4.SQL分析 结语 前言 在之前的文章中我们介绍了DBdoctor性能洞察功能&#xff0c;它能够快速量化数据库连接会话单条SQL的资源消耗&#xff0c;实现性能问题快速根因定位并给出优…

GBase 8s 数据库备份还原

每一天都是一个新的篇章&#xff0c;等待着你去书写属于自己的故事&#xff01;&#xff01;&#xff01; 一&#xff1a;备份 1.1.下载脚本文件&#xff0c;并上传到数据库服务器上相应目录。 解压后目录为&#xff1a; 说明&#xff1a; dbcomm.sh&#xff1a;导出注释脚本…

PHP框架+gatewayworker实现在线1对1聊天--发送消息(6)

文章目录 发送消息原理说明发送功能实现html部分javascript代码PHP代码 发送消息原理说明 接下来我们发送聊天的文本信息。点击发送按钮的时候&#xff0c;会自动将文本框里的内容发送出去。过程是我们将信息发送到服务器&#xff0c;服务器再转发给对方。文本框的id为msgcont…

DuckDB:密钥管理器及其应用

密钥管理器(Secrets Manager)为所有使用密钥的后端提供了统一的用户界面。密钥信息可以被限定范围&#xff0c;因此不同的存储前缀可以有不同的密钥信息&#xff0c;例如允许在单个查询中连接跨组织的数据。密钥也可以持久化&#xff0c;这样就不需要在每次启动DuckDB时都指定它…

告别Kibana:Elasticsearch 桌面客户端的新变革

告别Kibana&#xff1a;Elasticsearch 桌面客户端的新变革 在大数据处理与分析领域&#xff0c;Elasticsearch 及其相关技术的应用日益广泛。长期以来&#xff0c;Kibana 在数据可视化与查询管理方面占据重要地位&#xff0c;但随着技术的不断发展&#xff0c;用户对于更高效、…