Vue3.4更新 “Slam Dunk“发布!!!

Announcing Vue 3.4 | The Vue Point. vue3.4更新官方文档

在vue2即将结束更新的时候,vue3迎来了一个重要的更新。代号为“🏀 Slam Dunk”,即"灌篮高手"。这个版本进行了很多显著的内部改进,最重要的是模版解析的底层逻辑,让模版编译的速度提高了2倍。它还包含许多API的改进,包括defineModel绑定数据时的稳定性和新的同名缩写等,在一定程度上提高了开发的效率和代码的规范性。

vue3.4的更新主要包含了以下几点。

开发者需要进行的必要措施

1.更新依赖

为了更好的使用vue3.4,开发者应该更新以下依赖。

  • Volar / vue-tsc@^1.8.27 (必填)
  • @vitejs/plugin-vue@^5.0.0(如果使用 Vite)
  • nuxt@^3.9.0(如果使用 Nuxt)
  • vue-loader@^17.4.0(如果使用 webpack 或 vue-cli)

2.检查全局空间相关操作

如果将 TSX 与 Vue 结合使用,请检查已删除:全局 JSX 命名空间中所需的操作。

3.确保弃用功能不再使用

功能亮点

1.解析器速度提高 2 倍并提高 SFC 构建性能

原文:

在3.4中,我们完全重写了模板解析器。以前,Vue 使用递归下降解析器,该解析器依赖于许多正则表达式和前瞻搜索。新的解析器使用基于htmlparser2中的标记生成器的状态机标记生成器,它仅迭代整个模板字符串一次。结果是解析器对于所有大小的模板来说始终是两倍的速度。得益于我们广泛的测试用例和生态系统-ci,它也 100% 向后兼容 Vue 最终用户。

在将新的解析器与系统的其他部分集成时,我们还发现了一些进一步提高整体 SFC 编译性能的机会。基准测试显示,在生成源映射的同时编译 Vue SFC 的脚本和模板部分时,性能提高了约 44%,因此 3.4 应该会加快大多数使用 Vue SFC 的项目的构建速度。但是,请注意,Vue SFC 编译只是现实项目中整个构建过程的一部分。与单独的基准测试相比,端到端构建时间的最终收益可能要小得多。

在 Vue 核心之外,新的解析器还将有利于 Volar / vue-tsc 以及需要解析 Vue SFC 或模板的社区插件(例如 Vue Macros)的性能

2.更高效的反应系统

对反应性系统进行了重大重构,目标是提高计算属性的重新计算效率。

const count = ref(0)
const isEven = computed(() => count.value % 2 === 0)

watchEffect(() => console.log(isEven.value)) // logs true

count.value = 2 // logs true again

在 3.4 之前,watchEffect每次count.value更改都会触发回调,即使计算结果保持不变。通过 3.4 后的优化,现在仅当计算结果实际发生更改时才会触发回调。

在3.4中:

  • 多个计算的 dep 更改仅触发同步效果一次。
  • Array shiftunshift,splice方法仅触发一次同步效果。

这可以减少许多场景中不必要的组件重新渲染,同时保留完全的向后兼容性。

3.defineModel现在稳定

defineModel是一个新的<script setup>宏,旨在简化支持v-model. 它之前作为实验性功能在 3.3 中发布,并在 3.4 中升级为稳定状态。现在它还为v-model修饰符的使用提供了更好的支持 

相关文档Component v-model | Vue.js

4.v-bind同名缩写

使用v-bind的时候 名称相同可以缩写

原文:过去经常需要此功能。最初,我们担心它的用法会与布尔属性混淆。然而,在重新审视该功能之后,考虑到其动态特性,我们现在认为v-bind表现得更像 JavaScript 而不是本机属性是有意义的。

<img :id="id" :src="src" :alt="alt">



<img :id :src :alt>

5.错误代码和编译时标志参考 

为了减小生产构建的打包大小,Vue 在生产环境中会删除长的错误消息字符串。然而,这也意味着在生产环境中通过错误处理程序捕获的错误将只收到难以解读的短错误代码,需要深入研究 Vue 的源代码才能理解其含义。

为了改进这一点,Vue 团队在文档中新增了一个生产错误参考页面。这个页面根据最新版本的 Vue 稳定发布自动生成错误代码,方便开发者进行参考。

此外,还添加了一个编译时标志参考,其中包含了如何在不同的构建工具中配置这些标志的说明。这样开发者可以根据自己的需求进行配置,提高开发效率。

移除过时功能

1.全局 JSX 命名空间

自 3.4 版本起,Vue 不再默认注册全局 JSX 命名空间。此举旨在避免与 React 发生全局命名空间冲突,以使两个库的 TSX 在同一个项目中和谐共存。此变更对仅使用最新版 Volar 的 SFC 用户无影响。

如果正在使用TSX,有两个解决方案可供选择:

  • 在升级至 3.4 之前,需要在tsconfig.json中明确设置jsxImportSource'vue'。此外,还可以在每个文件的顶部添加/* @jsxImportSource vue */的注释,以文件为单位选择性采用此选项。

  • 如果代码依赖于全局JSX命名空间的存在,例如使用JSX.Element等类型,可以通过显式引用vue/jsx来保持与 3.4 版本之前完全相同的全局行为,该行为会注册全局JSX命名空间。

注意,此次变更仅影响类型,且为次要版本中的重大变更,符合发布政策。

2.其他已删除的功能

  • 在 3.3 版本中,Reactivity Transform 功能被标记为不推荐使用,并在 3.4 版本中被移除。由于该功能是实验性的,所以这个变化不需要进行重大更改。希望继续使用该功能的用户可以通过 Vue Macros 插件来实现。

  • app.config.unwrapInjectedRef已经被移除。在 3.3 版本中,它被标记为不推荐使用并默认启用。在 3.4 版本中,不再支持禁用此行为。

  • 在模板中使用@vnodeXXX事件监听器现在会导致编译错误,而不是发出不推荐使用的警告,需要改用@vue:XXX监听器。

  • v-is指令已被移除。在3.3版本中,它被标记为不推荐使用,需要改用带有vue:前缀的is属性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

burpsuite模块介绍之extender(扩展)

extender Burp提供了对第三方拓展插件的支持,使用户能够编写自定义插件或从插件商店中安装拓展插件。这些Burp扩展程序可以以多种方式定制Burp的行为,包括修改HTTP请求和响应、自定义UI、添加自定义扫描程序检查以及访问关键的运行时信息,如代理历史记录、目标站点地图和扫…

松松2023年工作汇报

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 今天是2024年1月3号&#xff0c;是我们新年上班的第2天。今天我们的开会内容主要是回顾2023年公司整体发展的情况&#xff1a; 1.人员方面 整个2023年是我们松松公司人员是最稳定的一年&#xff0c;招聘了2位兼职…

架构设计系列9,10

架构设计系列9&#xff1a;前端架构和后端架构的区别 前端架构和后端架构都是软件系统中最关键的架构层&#xff0c;负责处理不同方面的任务和逻辑&#xff0c;两者之间是存在一些区别和联系的&#xff0c;我会从以下几个方面来阐述&#xff1a; 定位和职责 ● 前端架构主要…

三分钟入门基于Visio的流程图绘制操作

Visio是微软旗下的一款流程图及其他框图绘制工具&#xff0c;有着广泛应用&#xff0c;其高效的展示功能和便捷快速的操作也广受认可。今天&#xff0c;我们就以最基本的流程图绘制为例来一起探索一下Visio的基础功能和用法。 声明&#xff1a;这篇教程从实用角度出发&#xf…

第5章 【例题】(部分~)

【例5.1】使用继承的案例 //【例5.1】使用继承的案例 #include <iostream> #include <string> using namespace std; class Person{ //声明基类public:Person(string name1,string id_number,int age1);~Person();void show(); //在基类中定义了成员函数show()pri…

全院级医学影像PACS源码,影像采集传输与存储管理、影像诊断查询与报告管理

全院医学影像PACS源码&#xff0c;数字化影像信息系统源码&#xff0c;带三维影像后处理技术 全院影像设备联网与影像信息数字化存储&#xff0c;建立涵盖全院的PACS/RIS系统&#xff0c;实现从预约、登记、分诊、排队叫号、检查、诊断阅片、报告发布、自助胶片打印等流程化管…

基于深度学习的交通标志图像分类识别系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 本文详细探讨了一基于深度学习的交通标志图像识别系统。采用TensorFlow和Keras框架&#xff0c;利用卷积神经网络&#xff08;CNN&#xff09;进行模型训练和预测&#xff0c;并引入VGG16迁移学习…

【obj To 3DTiles 格式转换】 可以自定义经纬高、属性表等参数。

目录 0 引言1 3DTiles数据2 objTo3DTiles2.1 工具的安装2.1.1 拓展&#xff1a;Node.js 和 npm 2.2 工具的使用2.2.1 输出成瓦片数据2.2.2 输出带有坐标参数的瓦片数据 3 查看3DTiles数据 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;Cesiumfor…

探索 Vue 实例方法的魅力:提升 Vue 开发技能(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

苹果小绿灯电路。

苹果充电器上的小绿灯。是5脚供电。一开始的时候&#xff0c;5脚电压是没有的。所以&#xff0c;比较器的3端电压没有&#xff0c;而1端电压呢&#xff1f;受到ACIN DETECTION电路控制&#xff0c;如图所示。当检测到适配器供电的时候&#xff0c;发出高电平SMC_BC_ACOK&#x…

yolo v7支持的设备

将一个深度学习模型&#xff08;在这里是YOLOv7&#xff0c;一个目标检测模型&#xff09;从PyTorch导出到不同的格式&#xff0c;以便在不同平台上进行推理&#xff08;inference&#xff09;。列出的方法包括&#xff1a; PyTorch 转 CoreML&#xff08;适用于 macOS/iOS&am…

Unity中Shader的Reversed-Z(DirectX平台)

文章目录 前言一、在对裁剪坐标归一化设置NDC时&#xff0c;DirectX平台Z的特殊二、在图形计算器中&#xff0c;看一下Z值反转前后变化1、在图形计算器创建两个变量 n 和 f 分别 控制近裁剪面 和 远裁剪面2、带入公式得到齐次裁剪空间下Z值3、进行透视除法4、用 1 - Z 得出Z值反…

docker小白第十一天

docker小白第十一天 dockerfile分析 Dockerfile是用来构建Docker镜像的文本文件&#xff0c;是由一条条构建镜像所需的指令和参数构成的脚本。即构建新镜像时会用到。 构建三步骤&#xff1a;编写dockerfile文件-docker build命令构建镜像-docker run镜像 运行容器实例。即一…

TB-C/C++

1.main函数之前之后执行的代码 设置栈指针初始化静态变量和全局变量&#xff08;.data段内容&#xff0c;已初始化且不为0&#xff09;赋初值&#xff08;.bss段内容&#xff0c;未初始化的全局变量和静态变量&#xff09;传参&#xff08;argc,argv&#xff09;atexit() 在…

C++-类和对象(2)

1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下 6 个默认成员 函数。 默认成员函数&#xff1a;用户没有显式实现&#xff0c;编译…

13个干货议题!拓数派携众多大咖共话国产数据库未来趋势

1月6日下午&#xff0c;由拓数派、PolarDB 开源社区、PostgreSQL 中文社区共同主办的《国产数据库共话未来趋势》技术沙龙将在上海举行。 本次沙龙现场大咖云集&#xff0c;来自拓数派、阿里云、平安科技等公司的众多行业技术大咖将与大家面对面交流&#xff0c;与广大技术爱好…

MySQL中的六种日志你都懂么?不懂!那就必须看看

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

【Linux】深度解剖环境变量

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟悉并掌握Linux的环境变量。 > 毒鸡汤&#x…

基于SSM的滁艺咖啡在线销售系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

基于果蝇算法优化的Elman神经网络数据预测 - 附代码

基于果蝇算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于果蝇算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于果蝇优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针…