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

【Vue3】05-Options API和Composition API的区别

其它篇章:
1.【Vue3】01-创建Vue3工程
2.【Vue3】02-Vue3工程目录分析
3.【Vue3】03-编写app组件——src
4.【Vue3】04-编写vue实现一个简单效果
合集篇:
1.【Vue3】创建并运行一个简易的Vue3项目

Options API和Composition API

    • Options API和Composition API的区别
      • 1. Options API
        • a. 什么是Options API
          • 概念:
          • 假设:
          • 分析:
          • 总结:
        • b. 特点
      • 2. Composition API
        • a. 什么是Composition API
          • 概念:
          • 问题:
          • 分析:
        • b. 特点

Options API和Composition API的区别

  • vue2的API设计是Options(配置)风格的。
  • vue3的API设计是Composition(组合)风格的。
  • 它们的区别在于一个是vue2用的,一个是vue3用的。

1. Options API

a. 什么是Options API
概念:
  • Options API使用一个包含多个属性的对象来定义组件,这些属性包括data、methods、computed等。
  • 这种方式使得相关功能的代码可能会分散在不同的配置项中,尤其是在大型项目中,一个methods对象可能包含多个不同功能的方法,这可能会导致代码的可维护性降低。
假设:
  • 若要实现一个功能,那这个功能就得有数据交互方法
  • 该功能的 数据 要放在data()里。
  • 该功能如果有一个 方法,那这个方法就要放在methods里。
  • 该功能如果需要一些 计算属性,还要把功能的计算属性写在computed里。
分析:

从结果来看,它把东西都拆散了,这就是选项式API,即Options API

总结:
  • 不管是什么数据,只要是在这个组件里,这个数据就得写在data()里。

  • 不管是什么方法,只要是这个组件的方法,就得写在methods里。

  • 这样的API就是选项式API,即OptionsAPI

b. 特点

看以下内容:

<script lang="ts">export default{name:"person",data() {return{name:'zhangsan',age:20,birth:'2005.1.1'}},methods:{show(){alert(this.birth)}}}
</script>

里面的name、data()、methods都是选项(配置项),对于vue2来说,学习vue2,就是学习这些配置项。

  • 缺点Options类型的API,数据、方法、计算属性等是分散在data、methods、computed中的,如果要修改一个需求,就需要分别修改data、methods、computed,比较麻烦,不利于维护和复用。

2. Composition API

a. 什么是Composition API
概念:
  • Composition API允许开发者根据逻辑功能来组织代码,提高了代码的内聚性和低耦合性。
  • 在Composition API中,所有相关的代码都放在一起,使得即使在大型项目中也能快速定位到功能所用到的所有API。
  • 组合式API,即Composition API
问题:

组合了什么呢?

分析:

数据、方法、计算属性等都组合在一起,修改对应函数地功能,找到对应地函数,不管数据,还是方法等,都可以直接在该函数中修改,不用像OptionsAPI一样,分别到data、methods、computed找对应地内容修改了。

b. 特点
  • 可以用函数的方式,更加优雅的组织代码,让相关功能的代码更加有序地组织在一起。
  • 优点:修改对应函数地功能,找到对应地函数能修改所有内容,更加便捷,不像OptionsAPI那么麻烦,提高了可读性和可操作性。

其它篇章:
1.【Vue3】01-创建Vue3工程
2.【Vue3】02-Vue3工程目录分析
3.【Vue3】03-编写app组件——src
4.【Vue3】04-编写vue实现一个简单效果
合集篇:
1.【Vue3】创建并运行一个简易的Vue3项目


文章转载自:

http://qA3snQym.fksyq.cn
http://lruxdC9b.fksyq.cn
http://ScjcYXHV.fksyq.cn
http://ssLEMD1n.fksyq.cn
http://3PJ78SDN.fksyq.cn
http://rKfc5EHP.fksyq.cn
http://yo8R7bUa.fksyq.cn
http://g5zlG8wy.fksyq.cn
http://08aBInWP.fksyq.cn
http://7iaLv7fz.fksyq.cn
http://1f6eM6u3.fksyq.cn
http://HZFRq4O3.fksyq.cn
http://eOGDXRvB.fksyq.cn
http://5W6pMS26.fksyq.cn
http://ZMg6sLZz.fksyq.cn
http://5GDGWeWL.fksyq.cn
http://IWv87sUt.fksyq.cn
http://VDqqsS34.fksyq.cn
http://yaA6RsAN.fksyq.cn
http://fi8LdiUz.fksyq.cn
http://ggUZtr6m.fksyq.cn
http://87C0GYBQ.fksyq.cn
http://8Ru6373x.fksyq.cn
http://ZenKteuH.fksyq.cn
http://W5a13euB.fksyq.cn
http://epCGu5Pd.fksyq.cn
http://Tdnrez44.fksyq.cn
http://ZHDid55b.fksyq.cn
http://pIcwX6ro.fksyq.cn
http://u7agRBmX.fksyq.cn
http://www.dtcms.com/a/379186.html

相关文章:

  • 锁框架-面试
  • 电商 API 爬虫高阶技巧:多线程 / 异步请求结合,突破接口频率限制
  • vue两个组件互相引入时候会报错
  • 《芯片封装后未测试品粘连及边缘残胶的多维度工艺与材料失效分析》
  • MySQL基础全面解析
  • 探索容器技术:从LXC到Podman的演进
  • IntelliJ IDEA 启动项目时配置端口指南
  • java 实现rtsp 直播流下载
  • Python高级编程实战:装饰器、迭代器与生成器的深度应用
  • 高级SQL技术综合指南(MySQL)
  • 【51单片机】【protues仿真】基于51单片机电子琴系统
  • 解决idea2021maven依赖导入后还是找不到包,爆红无法导入
  • Netty学习
  • VGGNet:为什么16层简单堆叠能成为CNN经典?
  • 知识图谱RAG
  • 与controller层的接口入参注解@Valid有关的实体类判断空的注解
  • 基于AT89C52单片机的智能蓝牙台灯设计
  • Javaweb前端内容的思维导图
  • PyTorch深度学习实战【10】之神经网络的损失函数
  • 3.前置知识学习
  • Whois查询域名信息
  • 机器学习vs人类学习:人类学习如何借鉴机器学习方法?
  • ES6 面试题及详细答案 80题 (41-54)-- 异步编程(Promise/Generator/async)
  • Bug记录:Lombok @Builder 注解的两大陷阱及解决方案
  • ARM汇编 beep及bsp工程管理
  • 深入理解 Vue3 Router:三种路由模式的工作原理与实战应用
  • 2025 ICPC Gran Premio de Mexico 3ra Fecha
  • ZLMediaKit性能测试
  • 使用PyQt5和NumPy从TXT文件读取平面点集数据
  • nacos1.3.2 ARM 版容器镜像制作