【Vue】Vue3中的OptionsAPI与CompositionAPI

文章目录

  • OptionsAPI
  • CompositionAPI
  • 对比
  • 总结


OptionsAPI

中文名:选项式API通过定义methods,computed,watch,data等属性方法,处理页面逻辑。以下是OptionsAPI代码结构
在这里插入图片描述
实例代码:

<script lang="ts">// js或者tsimport { defineComponent } from 'vue'export default defineComponent({// 启用了类型推导data(){return{name:"我是选项式API",otherName:"我是选项式API 另一个值",}},mounted() {this.handleTest()this.handleTest2()},methods:{handleTest(){console.log(this.name)},handleTest2(){console.log(this.otherName)}}})
</script>

优缺点:

  1. 条例清晰,相同的放在相同的地方。如果项目小,功能简单问题不大。但是项目一旦大,功能复杂,就会出现高耦合,低内聚的场面了。
  2. 当前页需要调用this去获取方法或属性。如果逻辑一复杂,就会出现指向不明等问题。

CompositionAPI

中文名:组合式API把一个功能所以顶的所有API汇集到一起,更加符合高内聚,低耦合的编程思想。即使项目再大,功能再复杂,都能快速定位这个功能的所有API。以下是CompositionAPI代码结构
在这里插入图片描述
实例代码:

<script setup lang="ts">import {ref} from "vue"let name = ref("我是选项式API")const handleTest = () => {console.log(name.value)}let otherName = ref("我是选项式API 另一个值")const handleTest2 = () => {console.log(otherName.value)}
</script>

优点:

  1. 有更好的逻辑复用组合函数来实现更加简洁高效的逻辑复用
  2. 更灵活的代码组织
  3. 更好的类型推导:支持使用Typescript,组合式 API 重写的代码可以享受到完整的类型推导,不需要书写太多类型标注
  4. 更小的生产包体积:搭配

对比

从以下图片可以看出,CompositionAPI(组合式API) 代码一目了然,功能一块的划分。如果要修改或者修复bug,能更快的查找和修复。所以推荐使用组合式API 写法。
在这里插入图片描述

总结

  1. 在逻辑组织和逻辑复用方面,Composition API是优于Options API
  2. Composition API几乎是函数,会有更好的类型推断
  3. Composition API对 tree-shaking 友好,代码也更容易压缩
  4. Composition API中没有对this的使用,减少了this指向不明的情况

踩坑不易,还希望各位大佬支持一下 \textcolor{gray}{踩坑不易,还希望各位大佬支持一下} 踩坑不易,还希望各位大佬支持一下

📃 个人主页: \textcolor{green}{个人主页:} 个人主页: 沉默小管

📃 个人网站: \textcolor{green}{个人网站:} 个人网站: 沉默小管

📃 个人导航网站: \textcolor{green}{个人导航网站:} 个人导航网站: 沉默小管导航网

📃 我的开源项目: \textcolor{green}{我的开源项目:} 我的开源项目: vueCms.cn

🔥 技术交流 Q Q 群: 837051545 \textcolor{green}{技术交流QQ群:837051545} 技术交流QQ群:837051545

👍 点赞,你的认可是我创作的动力! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

如果有不懂可以留言,我看到了应该会回复
如有错误,请多多指教

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

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

相关文章

LeetCode第十五题:三数之和【15/1000 python】

&#x1f464;作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 作者专栏每日更新&#xff1a; LeetCode解锁1000题: 打怪升级之旅 LeetCode解锁1000题: 打怪升级之旅htt…

【安全工具】信息收集——ENScan_GO

1.初次使用 运行命令生成配置文件 ./enscan -v 2.配置cookie 参考介绍 wgpsec/ENScan_GO: 一款基于各大企业信息API的工具&#xff0c;解决在遇到的各种针对国内企业信息收集难题。一键收集控股公司ICP备案、APP、小程序、微信公众号等信息聚合导出。 (github.com) 3.友情提…

SAP ERP 公有云有哪些模块?

随着全球化竞争的加剧和企业管理需求的日益复杂化&#xff0c;越来越多的企业开始采用云端企业资源计划&#xff08;ERP&#xff09;系统来优化业务流程。SAP ERP 公有云&#xff08;SAP S/4HANA Cloud, public edition&#xff09;作为一款领先的云端ERP解决方案&#xff0c;为…

nginx配置实例-动静分离

目录 一、相关概念 1.1动静分离概念 1.2动静分离的两种实现方法 二、实例配置 2.1 准备工作&#xff1a;在linux系统中准备静态资源&#xff0c;方便后面做测试 2.2 修改nginx配置文件 2.3 在浏览器测试 一、相关概念 1.1动静分离概念 将动态请求跟静态请求分开&#xf…

xgo: golang基于-toolexec实现猴子补丁

注&#xff1a; 转载请注明出处&#xff0c; 原文链接。 概述 在这篇博客中&#xff0c;我将详细介绍 xgo 的实现细节。 如果你不知道&#xff0c;xgo 项目位于 https://github.com/xhd2015/xgo。 它的作用很简单&#xff0c;就是在每个 Go 函数的开头添加拦截器&#xff0…

全志R128 SDK HAL 模块开发指南——IR红外无线传输

IR 红外是一种电磁波&#xff0c;可以实现数据的无线传输&#xff0c;由发送和接收两个部分组成。发送端对红外信号进行脉冲编码&#xff0c;接收端完成对红外信号的脉冲解码。红外遥控协议有多种&#xff0c;如 NEC、SIRC、 RC-5 等&#xff0c;这些协议都比较简单&#xff0…

【触想智能】工业一体机和普通电脑的区别是什么?

工业一体机和普通电脑的区别是什么&#xff0c;工业一体机可以当普通电脑一样使用吗? 要想了解工业一体机和普通电脑的区别是什么?我们首先来看看工业一体机是什么&#xff0c;它跟普通电脑有哪些相似的地方?下面小编就为大家来详细介绍一下。 在工作原理上&#xff0c;工业…

镭速集成SMTP开发邮件发送客户端

随着信息技术的不断进步&#xff0c;电子邮件已经成为商务交流和日常信息传递的关键工具。开发邮件客户端&#xff0c;尤其是整合了SMTP服务的客户端&#xff0c;对于增强企业内部的沟通效率和提升客户服务品质扮演着至关重要的角色。本文将深入探讨如何通过整合SMTP服务&#…

Linux系统Docker部署Apache Superset并实现公网实时访问本地数据

文章目录 前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网穿透&#xff0c;实现公网访问3. 设置固定连接公网地址 前言 Superset是一款由中国知名科技公司开源的“现代化的…

基于springboot实现母婴商城管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现母婴商城系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本母婴商城系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在…

Vue - 你知道Vue2中对象动态新增属性,视图无法更新的原因吗

难度级别:中高级及以上 提问概率:55% 这道题面试官会这样描述,比如有这样一个场景,一个对象里有name属性,可以正常显示在页面中。但后续动态添加了一个age属性,通过调试打印发现对象里的age属性已经添加了上了,但试图中却没有展示出来,…

pytest的时候输出一个F后面跟很多绿色的点解读

使用pytest来测试pyramid和kotti项目&#xff0c;在kotti项目测试的时候&#xff0c;输出一个F后面跟很多绿色的点&#xff0c;是什么意思呢&#xff1f; 原来在使用pytest进行测试时&#xff0c;输出中的“F”代表一个失败的测试&#xff08;Failed&#xff09;&#xff0c;而…