Vue3_2024_1天【Vue3创建和响应式,对比Vue2】

前言:

Vue3对比Vue2版本,它在性能、功能、易用性和可维护性方面都有显著的提升和改进。
性能优化:模板编译器的优化、对Proxy的支持以及使用了更加高效的Virtual DOM算法等。这使得Vue3的打包大小减少了41%,初次渲染提速55%,更新渲染提速133%,内存减少54%,比Vue2更快将近两倍。
源码升级:Vue3使用Proxy代替defineProperty实现响应式,重写了虚拟DOM的实现和采用了Tree-Shaking技术,从而帮助减小了包的大小。
更好的TypeScript支持:Vue3提供了更好的TypeScript支持,包括类型定义文件,以帮助开发者在编码过程中更好地进行类型检查。
新的API和特性:Vue3引入了Composition API(组合式API),这是一种新的API风格,使开发者更容易组织和重用组件逻辑。此外,Vue3还提供了新的内置组件,如Fragment、Teleport和Suspense,以及新的生命周期钩子、data选项应始终被声明为一个函数、移除keyCode支持作为v-on的修饰符等。

一. Vue3创建项目主要有两种方式如下,(VUe2一般使用脚手架创建项目)

1.1 使用Vue CLI创建项目:(不推荐)

  1. 首先,确保你的@vue/cli版本在4.5.0以上。你可以通过运行vue --version来检查版本。如果版本过低,可以通过运行npm install -g @vue/cli来更新Vue CLI。
  2. 使用vue create 项目名称命令来创建一个新的Vue 3项目。例如,vue create my-vue3-app。
  3. 在创建项目的过程中,你将看到一个选项列表,其中包括一些预设的配置选项,如Babel、Router、Vuex、CSS预处理器和Lint/Formatter等。根据你的需求选择这些选项。
  4. 创建项目后,进入项目目录并运行npm run serve来启动你的Vue 3应用。

1.2 使用Vite创建项目:(推荐)

  1. 首先,安装Vite。你可以通过运行npm install -g create-vite-app来全局安装Vite。
  2. 使用create-vite-app 项目名称命令来创建一个新的Vue 3项目。例如,create-vite-app my-vue3-app。
  3. 进入项目目录并运行npm install来安装项目依赖。
  4. 最后,运行npm run dev来启动你的Vue 3应用。
    在这里插入图片描述

需要注意的是,Vite不基于webpack,因此它的构建速度更快(先启动在加载解析或处理,反之webpack需要加载所有文件处理解析完毕后才启动,所以启动速度要慢),体积更小。但是,Vite目前仅支持Vue 3.x,不支持Vue 2.x,并且目前还不是很稳定,正在完善中。因此,在选择使用哪种方式创建Vue 3项目时,你需要根据你的需求和实际情况来做出决定。

二、Vue2配置式api(选项式api)与 Vue3组合式api

vue2配置api(选项api)
默认data里面定义的属性自带响应式效果(数据代理和数据劫持),vue2的特点:属性、方法、监听器都各司其职,分工比较明确;这样如果代码量大导致需要滚动代码看很累,不好维护;

vue3组合式api 【setup语法糖-ref和reactive】
* setup可作为一个函数方法,与vue2中的method、watch等同级定义,一起使用(注意:这属于在vue2中使用vue3,不建议混合写法,但是必须知道,万一后期公司有前人代码混合写,我们便于维护修改;)这种使用的不便之处,作为方法里面定义的属性或方法,需要最后return出去,外面才能使用,那么一旦单页面业务逻辑稍微复杂,变量和方法要一个一个的返回很不方便,容易遗漏或不必要方法也放上去了;
*直接将setup放到一个新的script标签上,这称作Vue3setup的语法糖(语法糖-顾名思义就是将代码可以简便),在script标签里面,仍旧使用和第一种里面一样的方式定义属性或方法,而最后不需要我们手动将其返回出去,这个动作语法糖帮我们做了,

   在vue2中,我们说过data里面的数据,由数据代理和数据劫持实现响应式,而vue3中实现响应式,需要我们使用ref或reaction包裹需要的赋值,例如:let a=ref( 'zhong' );  let b=reaction({name:'zzw',age:'18'});     说明:ref可以用于基本数据类型和对象数据类型(若用于对象类型,此时它的底层还是reaction帮忙做的) 、reaction只能用于对象数据类型(并且深层次的对象也能监听对象的响应-|对象里嵌套多套对象|)

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

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

相关文章

【MATLAB源码-第153期】基于matlab的OFDM系统插入导频和训练符号两种信道估计方式误码率对比仿真。

操作环境: MATLAB 2022a 1、算法描述 OFDM(Orthogonal Frequency Division Multiplexing,正交频分复用)是一种高效的无线信号传输技术,广泛应用于现代通信系统,如Wi-Fi、LTE和5G。OFDM通过将宽带信道划分…

使用docker方式测试部署django项目(客户催)

需求 1:已有django项目–weidanyewu 2:希望在服务器上测试部署–客户催 3:没完善django的启动 4:使用临时数据库进行演示 5:使用python3.10版本镜像 6:展示端口80 7:后台执行django程序 8&#…

【C语言】熟悉文件顺序读写函数

前言 本篇详细介绍了 文件顺序读写常用函数,快来看看吧~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 前言 ​编辑 文件顺序读写函数 fgetc函数 示例 fputc函数 逐个字符写入 写入26个字母 文…

手写模拟器,解放双手!效果炸裂的生产工具

手写模拟器是一款基于Handright的仿手写图片生成软件,可以让你的电脑和手机也能写出漂亮的手写字,你只需要输入你想要写的内容,选择你喜欢的字体和背景,就可以生成一张高仿真的手写图片,用于各种场合,比如做…

uniapp中canvas的基础使用

canvas简介 canvas是uniapp中提供的一个组件,用于生成自定义的图形界面。通过canvas,我们可以通过JavaScript代码在页面上绘制各种图形和图像。 使用canvas 在页面中添加canvas 首先需要在页面的template中添加一个canvas组件: <template><view><canvas ca…

linux:iostat 用法详解

文章目录 描述语法参数例子 描述 iostat 是一个在类Unix操作系统中常用的系统监控工具&#xff0c;尤其是Linux系统中&#xff0c;它主要用于收集和报告中央处理器(CPU)使用情况以及磁盘输入/输出(I/O)统计数据。以下是 iostat 命令的基本用法及其参数详解&#xff1a; 语法 …

代码随想录三刷 day11 | 栈与队列之 20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值

三刷day11 20. 有效的括号1047. 删除字符串中的所有相邻重复项150. 逆波兰表达式求值 20. 有效的括号 题目链接 解题思路&#xff1a; 有三种不匹配的情况&#xff1a; 第一种情况&#xff0c;字符串里左方向的括号多余了 。 第二种情况&#xff0c;括号没有多余&#xff0c;…

[伴学笔记]01-操作系统概述 [南京大学2024操作系统]

文章目录 前言jyy:01-操作系统概述 [南京大学2024操作系统]为什么要学操作系统?学习操作系统能得到什么? 什么是操作系统?想要明白什么是操作系统:时间线:1940s1950s-1960s1960-1970s年代. 信息来源: 前言 督促自己,同时分享所得,阅读完本篇大约需要10分钟,希望为朋友的技术…

编码规则转换

思考&#xff1a; 如何将一个机内码转换为区内码&#xff1f; 只要将机内码减去 A0A0 就可以啦 如果只让我们用加法器来解决呢&#xff1f; 注意我们的数据占用了 32 位&#xff0c;如果想用补码进行减法运算的话&#xff0c;符号位怎么办&#xff1f;&#xff1f;&#xf…

《探索数据结构之美:如何高效实现哈希表》

摘要&#xff1a;哈希表是一种基于键值对的数据结构&#xff0c;它通过哈希函数将键映射到表中一个位置&#xff0c;以实现快速的插入、删除和查找操作。在本期播客中&#xff0c;我们将深入剖析哈希表的数据结构&#xff0c;分享如何用Python语言实现一个哈希表项目。此外&…

【深度学习笔记】计算机视觉——微调

微调 前面的一些章节介绍了如何在只有6万张图像的Fashion-MNIST训练数据集上训练模型。 我们还描述了学术界当下使用最广泛的大规模图像数据集ImageNet&#xff0c;它有超过1000万的图像和1000类的物体。 然而&#xff0c;我们平常接触到的数据集的规模通常在这两者之间。 假…

【计算机是怎么跑起来的】软件,体验一次手工汇编

【计算机是怎么跑起来的】软件,体验一次手工汇编 二进制机器语言汇编语言操作码操作数寄存器内存地址和I/O地址参考书:计算机是怎么跑起来的 第三章外设在路上。。。先整理一下本书涉及的理论知识,反正后面做视频也要重写QAQ 程序的作用是驱动硬件工作,所以在编写程序之前必…

【C++庖丁解牛】类与对象

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 1.面向过程和面向对象…

对单例模式的饿汉式、懒汉式的思考

目录 1 什么是单例模式&#xff1f;1.1 什么是饿汉式&#xff1f;1.2 什么是懒汉式&#xff1f; 2 我对饿汉式的思考3 懒汉式3.1 解决懒汉式的线程安全问题3.1.1 加锁&#xff1a;synchronized&#xff08;synchronized修饰静态方法&#xff09;3.1.2 对“3.1.1”性能的改进 1 …

环形链表详解(让你彻底理解环形链表)

文章目录 一.什么是环形链表&#xff1f;二.环形链表的例题&#xff08;力扣&#xff09; 三.环形链表的延伸问题 补充 一.什么是环形链表&#xff1f; 环形链表是一种特殊类型的链表数据结构&#xff0c;其最后一个节点的"下一个"指针指向链表中的某个节点&#xff…

Python 教学平台,支持“多班教学”的课程授课方式|ModelWhale 版本更新

龙行龘龘、前程朤朤&#xff0c;ModelWhale 新一轮的版本更新&#xff0c;期待为大家带来更优质的使用体验。 本次更新中&#xff0c;ModelWhale 主要进行了以下功能迭代&#xff1a; 新增 课程&#xff08;包括课件、作业、算力&#xff09;按班级管理&#xff08;团队版✓ …

springcloud的搭建和封装,已进行开源,相互学习代码知识。

springcloud架构的统一父工程&#xff0c;&#xff08;管理子模块&#xff0c;管理依赖插件&#xff0c;依赖版本等&#xff09; abillty:能力服务块&#xff1a;存放一些非业务相关的微服务&#xff0c;比如网关&#xff0c;身份认证等 exce: 网关中的一些异常信息处理 gatewa…

基于Springboot的人事管理系统 (有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的人事管理系统 &#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&am…

【Git】merge时报错:refusing to merge unrelated histories

文章目录 一、问题二、解决办法1、将feature分支的东西追加到master分支中2、将feature里的东西直接覆盖到master分支中 一、问题 今天将feature分支合并到master时报错&#xff1a;refusing to merge unrelated histories&#xff08;拒绝合并无关历史&#xff09; 报错原因&…

一篇文章速通static关键字(JAVA)

目录 1.原理——内存机制 1.1 修饰对象 1.2 lifecycle生命周期 2. 静态属性&#xff08;类属性&#xff09;和实例属性&#xff08;对象属性&#xff09; 2.1 定义方式 2.2 调用方法 3. 静态方法和属性 3.1 在同一个类中 3.2 在不同类中 4.总结&#xff08;关键&#x…