Vue3与Vue2区别和总结(1)
在2020年9月18日,Vue.js发布3.0版本,代号:One Piece(海贼王)
既然vue2已经存在了六七年之久为什么还要研发vue3呢?
那就不得不提vue3带来的提升了
1.Vue3带来了什么
1.性能的提升
-
打包大小减少41%
-
初次渲染快55%, 更新渲染快133%
-
内存减少54%
2.源码的升级
-
使用Proxy代替defineProperty实现响应式
-
重写虚拟DOM的实现和Tree-Shaking
......
3.拥抱TypeScript
-
Vue3可以更好的支持TypeScript
4.接下来也就是,vue3带来的最新技术,组合式API,但同时在市场上也饱受争议。
Composition API(组合API)
-
setup配置
-
ref与reactive
-
watch与watchEffect
-
provide与inject
-
......
setup语法糖
-
理解:Vue3.0中一个新的配置项,值为一个函数。
-
setup是所有Composition API(组合API)“ 表演的舞台 ”。
-
组件中所用到的:数据、方法等等,均要配置在setup中。
-
setup函数的两种返回值:
-
若返回一个对象,则对象中的属性、方法, 在模板中均可以直接使用。(重点关注!)
-
若返回一个渲染函数:则可以自定义渲染内容。(了解)
-
-
注意点:
-
尽量不要与Vue2.x配置混用
-
Vue2.x配置(data、methos、computed...)中可以访问到setup中的属性、方法。
-
但在setup中不能访问到Vue2.x配置(data、methos、computed...)。
-
如果有重名, setup优先。
-
-
setup不能是一个async函数,因为返回值不再是return的对象, 而是promise, 模板看不到return对象中的属性。(后期也可以返回一个Promise实例,但需要Suspense和异步组件的配合)
-
ref函数
-
作用: 定义一个响应式的数据
-
语法:
const xxx = ref(initValue)-
创建一个包含响应式数据的引用对象(reference对象,简称ref对象)。
-
JS中操作数据:
xxx.value -
模板中读取数据: 不需要.value,直接:
<div>{{xxx}}</div>
-
-
备注:
-
接收的数据可以是:基本类型、也可以是对象类型。
-
基本类型的数据:响应式依然是靠
Object.defineProperty()的get与set完成的。 -
对象类型的数据:内部 “ 求助 ” 了Vue3.0中的一个新函数——
reactive函数。
-
reactive函数
-
作用: 定义一个对象类型的响应式数据(基本类型不要用它,要用
ref函数) -
语法:
const 代理对象= reactive(源对象)接收一个对象(或数组),返回一个代理对象(Proxy的实例对象,简称proxy对象) -
reactive定义的响应式数据是“深层次的”。
-
内部基于 ES6 的 Proxy 实现,通过代理对象操作源对象内部数据进行操作。
是的,没有错,vue3放弃了原有的书写格式,取而代之的不同API的组合式维护。这样代码更加层次分明。
在Vue 2中,我们使用Options API来定义组件,即通过一个包含不同选项的对象来描述组件的行为。而在Vue 3中,引入了Composition API(组合式API),它可以让我们更好地组织和复用组件逻辑。
使用组合式API,我们可以通过函数形式定义组件的逻辑,而不再强制按照选项的方式来分割代码。这意味着可以更容易地组合和复用逻辑,提高开发效率。
组合式API的核心概念是使用setup()函数来定义组件的逻辑。在setup()函数中,我们可以使用Vue.js提供的一些函数和响应式API来定义数据、计算属性、方法、生命周期钩子等。
但是这并不是说vue3完全弃用了vue2的语法规则,你依然可以在vue3里面写vue2的代码,但是在这样会让你的代码非常不协调。一边是组合式api一边又是传统的option API,代码之间的割裂感会很强。我个人觉得还是vue2里面写vue2的,vue3那就用新的组合式api,这样是最好的。
5.你以为vue3就这些,nonono!
相当于新推出的组合式API,最让我感兴趣的是最新的vite构建工具。不同于vuecli 它是一个基于ES模块的快速开发工具。
Vue CLI 是构建在 Webpack 之上的,因此开发服务器和构建功能和性能都将是 Webpack 的超集。 Vite 概述 与 Vue CLI 类似,Vite 也是一个提供基本项目脚手架和开发服务器的构建工具。 然而,Vite 并不是基于 Webpack 的,它有自己的开发服务器,利用浏览器中的原生 ES 模块。 这种架构使得 Vite 比 Webpack 的开发服务器快了好几个数量级。
这不是在开玩笑,我有做一个对比,就仅仅算项目原生的启动时间,vite的项目速度远远快于vuecli的项目,这真的是一种飞跃!!!
vue官方也有做出相关评价,vite在很多方面的进步在于打破传统,大胆采用新技术。并且说到不会再采用webpack,老外直接哭死。
下一次继续vue3总结
相关文章:
Vue3与Vue2区别和总结(1)
在2020年9月18日,Vue.js发布3.0版本,代号:One Piece(海贼王) 既然vue2已经存在了六七年之久为什么还要研发vue3呢? 那就不得不提vue3带来的提升了 1.Vue3带来了什么 1.性能的提升 打包大小减少41% 初次…...
【华秋推荐】物联网入门学习模块 ESP8266
随着全球信息技术的不断进步和普及,物联网成为当今备受关注的技术热点之一。通过物理和数字设备之间的连接来实现自动化和互联互通的网络。无线传感器、云计算和大数据分析等技术,物联网使设备能够相互交流和共享信息,实现智能化的自动化操作…...
本科专科毕业论文如何选题-附1000多论文题目-论文选题--【毕业论文】
文章目录 本系列校训毕设的技术铺垫论文选题选题目的和意义:选题举例参考文献 配套资源 本系列校训 互相伤害互相卷,玩命学习要你管,天生我才必有用,我命由我不由天! 毕业论文不怕难,毕业设计来铺垫&#…...
pip安装jupyter notebook
之前电脑安装了anaconda,里面安装了jupyter notebook,用来做PPT之类的展示总让我觉得有点“炫酷”。 现在换了新电脑。没有anaconda,纯粹只是装了python3.11,然后突然也想手工安装下jupyter notebook,于是只能通过pip方…...
STM32刷Micropython固件参考指南
STM32刷Micropython固件指南 其实刷固件和普通的程序下载烧录无多大的差异,主要是其他因数的影响导致刷固件或刷完固件无法运行的情况和相关问题。 📑刷固件教程 固件下载。目前所支持的stm32型号有这些: stm32f0, stm32f4, stm32f7, stm32g…...
学生信息管理系统自动化测试
项目地址: http://82.156.151.156:8080/login.html 一、系统测试用例 二、测试实现过程 先是根据自己的项目设计了一个 UI 自动化测试用例, 然后根据这个测试用例使用了 selenium4自动化测试工具和 JUnit5单元测试框架结合实现的 web 自动化测试.。 测试模块划分…...
Java面向对象之toString()方法
toString()方法 toString()方法在Object类中定义,其返回值是String类型,返回类名和它的引用地址。在进行String与其它类型数据的连接操作时,自动调用toString()方法。 Date nownew Date(); System.out.println(“now”now); 相当于 System.…...
MySQL(一)
mysql简介 1、什么是数据库 ? 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅…...
使用docker部署node和react应用
使用docker部署node和react应用 Docker 使开发人员能够将所有应用程序打包到容器中。这些容器可以在任何安装了 Docker 的机器上运行,并且应用程序将是相同的。这是在多个系统上运行代码库克隆的好方法,并且我们可以确保它们都是相同的。 在本文中&…...
对List集合、数组去重
前言: 还记得在2021我发布的第一篇博客就是关于数组的去重,从那一刻开始,命运的齿轮开始转动…… 扯远了哈哈哈,我重新写这篇文章只是想让去重方式更加严谨(ps:我才不会说是因为技术成长了,看不上之前写的…...
AI相机“妙鸭相机”原理分析和手动实现方案
妙鸭相机 一个通过上传大约20张照片,生成专属自拍。在2023年7月末爆火,根据36Kr报道,妙鸭相机系阿里系产品,挂靠在阿里大文娱体系下,并非独立公司。 使用方法是上传20张自拍照片,之后可以选择模板生成自己…...
关于计算机大学生秋招面试的那点事?(Golang篇)
前言; Go语言(简称Golang)越来越受到开发者的关注和欢迎。它由Google公司于2009年推出,旨在提供更好的性能和并发性能。眼下,越来越多的公司在使用它,比如著名的云计算服务商AWS,以及知名电商京…...
Windows网络自学的第一天:创建线程
CreateThread函数: 该函数用于创建一个新的线程并在其上运行指定的函数,原型如下: HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,SIZE_T dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID …...
正确的 Java 异常处理
我们来谈谈痛点吧。由于我的职责,我必须使用许多不同的服务(进行编辑、进行代码审查......);不同的团队通常会编写所有这些服务,每当涉及到处理错误并从服务转发错误时,有时我的眼睛就会开始流泪。让我尝试…...
RTT(RT-Thread)时钟管理
目录 时钟管理 时钟节拍 RTT工程目录结构介绍 配置文件:rtconfig.h 获取系统节拍 获取系统节拍数函数 实例 定时器 RT_Thread定时器介绍 定时器源码分析(了解即可) rt_system_timer_init (硬件定时器初始化) rt_system_timer_thr…...
基础实验篇 | uORB消息读写与自定义实验(二)
导读 uORB是PX4/Pixhawk系统中非常重要且关键的模块之一,是用于无人机模块间通信的协议机制。本篇将详细介绍uORB并详细拆解uORB消息读写与自定义实验全流程(二)。 基础实验篇 | uORB消息读写与自定义实验(二) 01 RflySim平台的uORB消息读写…...
k8s pod数据存储Volumes
一、说在前面的话 在 Kubernetes 的 Deployment 中,您可以使用多种类型的 Volumes 来管理 Pod 中的数据。 作用是用来共享目录及配置,不用在每个pod里进行配置。 本文主要概述怎么使用HostPath、PersistentVolumeClaim、ConfigMap。 二、k8s有哪些Vol…...
ZYNQ在Petalinux系统下双网口同网段的实现
ZYNQ在Petalinux系统下双网口同网段的实现 1.开发环境 采用了赛灵思zynq xc7z100芯片,外部挂载了两个网口phy芯片(marvell 88e1510),且两个网口phy芯片公用MDIO管脚,bd配置如下: 2.问题说明 忙去了&am…...
突破传统监测模式:业务状态监控HM的新思路 | 京东云技术团队
一、传统监控系统的盲区,如何打造业务状态监控。 在系统架构设计中非常重要的一环是要做数据监控和数据最终一致性,关于一致性的补偿,已经由算法部的大佬总结过就不再赘述。这里主要讲如何去补偿?补偿的方案哪些?这就…...
7-16 验证“哥德巴赫猜想” (20 分)
7-16 验证“哥德巴赫猜想” (20 分) 数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24519,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以…...
别再让服务器裸奔!手把手教你升级OpenSSL 1.1.1h修复CVE-2016-2183漏洞(附完整命令)
服务器安全必修课:彻底根治CVE-2016-2183漏洞的OpenSSL升级实战指南 凌晨三点,运维工程师小李的手机突然响起刺耳的告警声——安全扫描系统检测到生产服务器存在CVE-2016-2183漏洞。这个潜伏在OpenSSL中的"定时炸弹",可能让加密通…...
终极Cursor Pro破解指南:三步免费解锁AI编程无限体验
终极Cursor Pro破解指南:三步免费解锁AI编程无限体验 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your tria…...
如何利用PSI指标优化机器学习模型的稳定性监控
1. 为什么模型监控需要PSI指标? 想象一下你训练了一个信用评分模型,上线时准确率高达90%。但三个月后突然收到大量用户投诉,说评分结果不合理。排查数据发现,这段时间经济环境变化导致用户收入分布发生偏移,而模型还在…...
论一个程序员如何成为家里的“IT运维总监”
在数字化时代,家庭IT运维已成为现代生活的核心需求。从智能家居设备到网络安全,从数据备份到故障排除,一个高效的“家庭IT运维总监”能显著提升生活品质。作为软件测试从业者,您具备独特的优势——严谨的系统思维、故障定位能力和…...
Vue3+@antv/x6实战:5步实现可交互流程图保存与图片导出功能
Vue3与antv/x6深度整合:打造企业级可交互流程图解决方案 在数字化转型浪潮中,可视化流程编排工具已成为企业级应用的标准配置。作为前端开发领域的黄金组合,Vue3的响应式体系与antv/x6的图编辑能力相结合,能够快速构建出功能完备的…...
如何用Obsidian Projects解决碎片化知识管理难题:从笔记到项目的一站式解决方案
如何用Obsidian Projects解决碎片化知识管理难题:从笔记到项目的一站式解决方案 【免费下载链接】obsidian-projects Plain text project planning in Obsidian 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-projects 你是否经常在Obsidian中积累了…...
数据结构总结分享02——栈的相关例题与应用【简单】
前情提要 栈的应用非常广泛,下面列举出几个最为经典的题目,分别用了上篇文章中自己的类来实现以及 STL 中的 std::stack 来实现~ 使用自己的类的应用 题目:括号匹配说明: 这是一个非常经典的栈新手村入门第一题,题目…...
终极指南:MediaCMS无缝集成第三方系统——SAML认证与API对接全攻略
终极指南:MediaCMS无缝集成第三方系统——SAML认证与API对接全攻略 【免费下载链接】mediacms MediaCMS is a modern, fully featured open source video and media CMS, written in Python/Django and React, featuring a REST API. 项目地址: https://gitcode.c…...
终极浏览器批量下载指南:使用multi-download高效管理多文件下载
终极浏览器批量下载指南:使用multi-download高效管理多文件下载 【免费下载链接】multi-download Download multiple files at once in the browser 项目地址: https://gitcode.com/gh_mirrors/mu/multi-download 在现代Web应用中,批量下载多个文…...
Helm 入门:Kubernetes 的包管理工具
Helm 入门:Kubernetes 的包管理工具 在云原生技术快速发展的今天,Kubernetes 已成为容器编排的事实标准。随着应用规模的扩大,管理复杂的 Kubernetes 资源变得越来越繁琐。这时,Helm 作为 Kubernetes 的包管理工具应运而生&#…...
