【第5章】Vue之API风格

文章目录

  • 前言
  • 一、选项式 API(Options API)
    • 1. 代码
    • 2. 效果
  • 二、组合式 API(Composition API)
    • 1. 代码
    • 2. 效果
  • 三、两者之间的区别
  • 总结


前言

Vue.js 提供了两种主要的 API 风格来组织组件的代码:选项式 API(Options API)和组合式 API(Composition API)。这两种 API 风格在 Vue 3 中都得到了支持,但组合式 API 是在 Vue 3 中引入的新特性,旨在解决大型组件中逻辑难以组织和复用的问题。

接下来我们来使用一个时钟的案例来展示同样的用法,不通的代码风格。


一、选项式 API(Options API)

在 Vue 2 和 Vue 3 中,选项式 API 是默认的 API 风格。它使用 export default 返回一个对象,该对象包含组件的各种选项,如 datamethodscomputedwatchmounted 等。

1. 代码

<script>
//选项式 API
export default {data() {return {msg: '选项式 API时钟功能',currentTime: ''};},methods: {updateTime() {  const now = new Date();  this.currentTime = `${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}`;  } },mounted() {this.updateTime(); // 在组件加载时获取一次时间  setInterval(this.updateTime, 1000); // 每秒更新一次时间  },beforeDestroy() {  clearInterval(this.intervalId); // 在组件销毁前清除定时器  }
};
</script><template><h1>{{ msg }}</h1><div><p>当前时间: {{ currentTime }}</p></div>
</template><style>h1{color:rgb(0, 255, 115);}
</style>

2. 效果

在这里插入图片描述

二、组合式 API(Composition API)

组合式 API 是在 Vue 3 中引入的一种新特性,它允许你使用更具函数式编程风格的代码来组织组件逻辑。组合式 API 提供了一系列函数,如 refreactivecomputedwatchsetup 等,这些函数可以在 setup 函数中一起使用,以定义组件的状态、方法和计算属性。

1. 代码

<!-- 组合式 API -->
<script setup>
import { ref,onMounted,onBeforeUnmount} from 'vue'// 定时器的引用  
let intervalId = null;
const msg = ref('组合式 API时钟功能')
const currentTime = ref('')function updateTime() {const now = new Date();  currentTime.value = `${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}`;
}onMounted(() => {updateTime(); // 在组件加载时获取一次时间intervalId = setInterval(updateTime, 1000); // 每秒更新一次时间     
}) 
onBeforeUnmount(() => {clearInterval(this.intervalId); // 在组件销毁前清除定时器  
})
</script><template><h1>{{ msg }}</h1><div><p>当前时间: {{ currentTime }}</p></div>
</template><style>h1{color:rgb(0, 255, 115);}
</style>

2. 效果

在这里插入图片描述

三、两者之间的区别

  1. 逻辑组织:组合式 API 允许你将相关的逻辑组合在一起,而不是分散在组件的各个选项中。这有助于提高代码的可读性和可维护性。

  2. 代码复用:使用组合式 API,你可以更容易地提取和复用逻辑代码段。你可以创建可复用的函数,这些函数可以接收 refreactive 等作为参数,并返回计算属性、方法等。

  3. TypeScript 支持:组合式 API 与 TypeScript 配合得更好,因为它允许你明确地定义组件的状态和类型。

  4. 响应式系统:组合式 API 提供了更底层的响应式系统 API,如 refreactive,这些 API 可以更直接地操作响应式数据。

  5. 向后兼容性:Vue 3 同时支持选项式 API 和组合式 API,以确保与 Vue 2 的向后兼容性。但是,Vue 官方推荐使用组合式 API 来开发新的 Vue 3 应用程序。


总结

回到顶部
总的来说,选择哪种 API 风格取决于你的具体需求和偏好。对于小型、简单的组件,选项式 API 可能已经足够。但是,对于大型、复杂的组件,组合式 API 可以提供更清晰、更可维护的代码结构。

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

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

相关文章

ios描述文件.mobileprovision 如何查看包含的设备 udid|IPA查看是否包含设备 UDID|轻松签查看证书是否包含自己设备 UDID

前言 之前蒲公英支持上传证书查看证书有效期和包含设备 【干货】IOS苹果P12证书有效性检测 及查看证书是否包含自己的设备 【干货】IOS苹果P12证书有效性检测 及查看证书是否包含自己的设备 - 路灯IT技术博客 - 后厂村路灯 如今蒲公英下架了该功能&#xff0c;已经没有证书检…

新等保2.0防护体系方案

等保2.0防护体系 吉祥学安全知识星球&#x1f517;除了包含技术干货&#xff1a;Java代码审计、web安全、应急响应等&#xff0c;还包含了安全中常见的售前护网案例、售前方案、ppt等&#xff0c;同时也有面向学生的网络安全面试、护网面试等。 最近在写一些咨询相关的材料&…

计算机网络(6) TCP协议

TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是互联网协议套件中一种核心协议。它提供面向连接的、可靠的字节流传输服务&#xff0c;确保数据从一端正确无误地传输到另一端。TCP的主要特点包括&#xff1a; 可靠性&#xff1a;TCP使用…

返回值返回引用返回指针之间的区别

一、返回值 当函数返回一个值时&#xff0c;实际返回的是一个变量的拷贝。 优点&#xff1a; 简单易用&#xff1b;安全&#xff0c;不会导致悬挂指针或悬挂引用&#xff1b; 缺点&#xff1a; 当返回值是一个较大的对象时会产生拷贝开销&#xff0c;影响程序性能&#xf…

PHP聚合通多平台支付平台源码

源码介绍 php聚合通多平台支付平台源码&#xff0c;源码搭建了一下&#xff0c;这个源码不复杂&#xff0c;修改一下数据库账号密码然后导入数据库就可以&#xff0c;和网站恢复备份一样简单&#xff01; 源码截图 源码下载 PHP聚合通多平台支付平台源码

【小白专用 已验证24.6.7】C# MySQL数据库访问操作封装类

一、底层库介绍 本文主要介绍数据库访问操作类&#xff0c;包含&#xff1a;SQL插入脚本、SQL查询脚本、数据库表是否存在判断、带参脚本执行、包含事务回滚脚本执行、存储过程脚本等等。 特殊说明 在使用之前&#xff0c;先安装 MySql.Data 插件 二、底层库源码 2.1 程序源…

C++ 24 之 拷贝构造函数

c24拷贝构造函数.cpp #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std;class Person3 { private:int p_age; public:// 构造函数分类&#xff1a;// 按参数分类&#xff1a;1、有参 2、无参// 按类型分类:普通、拷贝&#xff08;复制&…

第2章 Rust初体验5/8:match表达式和模式匹配:更富表达力:猜骰子冷热游戏

讲动人的故事,写懂人的代码 2.5 故事3: 比较答案与点数之和 贾克强:“同学们,我们开始用三种语言来实现故事3吧!” 2.5.1 Rust版故事3 这个故事实在是轻松容易地实现了。赵可菲照着书,一下子就写好了。 @@ -1,4 +1,5 @@use rand::Rng; +use std::cmp::Ordering;use std…

【动态规划】| 路径问题之最小路径和 力扣64

&#x1f397;️ 主页&#xff1a;小夜时雨 &#x1f397;️专栏&#xff1a;动态规划 &#x1f397;️如何活着&#xff0c;是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/minimum-path-sum/description/ 这道题目和之前一道…

使用CSS、JavaScript、jQuery三种方式实现手风琴效果

手风琴效果有不少&#xff0c;王者荣耀官网&#xff08;源网址 https://pvp.qq.com/raiders/ &#xff09;有一处周免英雄&#xff0c;使用的就是手风琴效果&#xff0c;如图所示。 我试着用css、js、jQuery三种方式实现了这种效果&#xff0c;最终效果差不多&#xff0c;美中不…

周四 A股震荡走低,行情总结

文章正文 周四&#xff0c;A股全日震荡走低&#xff0c;上证指数收跌0.28%&#xff0c;深成指跌近0.创业板指跌0.09%。猪肉、有色金属、中药、磷化工、煤炭、房地产、白酒行业跌幅靠前。科特估概念股掀起20cm涨停潮&#xff0c;半导体、机器人、消费电子、光伏、虚拟电厂概念股…

问题:以下描写乡村词语的是() #媒体#媒体#知识分享

问题&#xff1a;以下描写乡村词语的是&#xff08;&#xff09; A&#xff0e;高楼林立 B&#xff0e;车水马龙 C&#xff0e;依山傍水 参考答案如图所示

ThinkPHP+Bootstrap简约自适应网址导航网站源码

使用 ThinkPHPbootstrap 开发&#xff0c;后台采用全局 ajax 无刷新加载&#xff0c;前后台自适应&#xff0c;前台页面非常简洁适合自己收藏网站或做导航网站。 搭建教程&#xff1a; 1.整个主机 2.绑定解析域名 3.上传源码&#xff0c;解压 把解压出来的 nav.sql 文件导入数…

STM32自己从零开始实操05:接口电路原理图

一、TTL 转 USB 驱动电路设计 1.1指路 延续使用芯片 CH340E 。 实物图 原理图与封装图 1.2数据手册重要信息提炼 1.2.1概述 CH340 是一个 USB 总线的转接芯片&#xff0c;实现 USB 与串口之间的相互转化。 1.2.2特点 支持常用的 MODEM 联络信号 RTS&#xff08;请求发送&…

ubuntu下使用cmake编译opencv4.8.0+ffmpeg4.2.2+cuda11.1

1.源码下载 &#xff08;1&#xff09;下载ffmpeg4.2.2、opencv4.8.0源码&#xff0c;这里提供一个百度网盘地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1pBksr0_RtKL0cM6Gsf2MGA?pwdcyai 提取码&#xff1a;cyai &#xff08;2&#xff09;解压所有文件 例…

我的高考往事

高考对于每一个参加过的人来说&#xff0c;都是一段非常难忘的回忆。 我参加高考&#xff0c;是在2001年。虽然迄今已经过去了23年&#xff0c;但很多细节仍然记忆犹新。 今天这篇文章&#xff0c;我就和大家分享一下&#xff0c;我的高考往事。 █ 青少年时代 我的老家是在江西…

开个技术外挂 | 数字孪生技术如何成为美洲杯帆船赛成功的关键?

若您对数据分析以及人工智能感兴趣&#xff0c;欢迎与我们一起站在全球视野关注人工智能的发展&#xff0c;与Forrester 、德勤、麦肯锡等全球知名企业共探AI如何加速工业变革&#xff0c;共享众多优秀行业案例&#xff0c;开启AI人工智能全球新视野&#xff01;&#xff01; …

Ubuntu Server 20.04挂载磁盘

先查看磁盘信息&#xff1a; sudo fdisk -l然后提供NTFS文件系统支持&#xff1a; sudo mkfs.ntfs /dec/sda -F这个过程非常久… 处理完如上图。&#xff08;ps. 这个 Have a nice day. 好浪漫~&#xff09; 接着挂载磁盘&#xff1a; sudo mount /dev/sda ~/device设置开机…

计算机网络(4) 最长前缀匹配(路由转发表)

一.路由转发 网络数据包IP段只包含源地址与目的地址&#xff0c;经过数据链路层包装与物理层信号形式转换&#xff0c;最终经由不同的链路节点到达目的地址。这个过程是一步一步&#xff08;hop by hop&#xff09;进行的&#xff0c;路过一个路由节点则称为一跳。每个路由节点…

会声会影2023软件:安装包下载 丨不限速下载丨亲测好用

会声会影(Corel VideoStudio)为加拿大Corel公司发布的一款功能丰富的视频编辑软件。 会声会影2023简单易用&#xff0c;具有史无前例的强大功能&#xff0c;拖放式标题、转场、覆叠和滤镜&#xff0c;色彩分级、动态分屏视频和新增强的遮罩创建器&#xff0c;超越基本编辑&…