Vue 3.4 “灌篮高手”发布


Vue 3.4 已正式发布,代号"🏀 Slam Dunk"(灌篮高手)。

新版本主要变化

  • 重写模板解析器,速度提升了 2 倍
  • 重构响应性系统 (Reactivity System),让 effect 的触发更准确高效
  • 优化 API,比如defineModel进入稳定阶段,以及绑定 props 时的同名简写

更新亮点

  • 解析器速度提升 2 倍,优化 SFC 构建性能

Vue 3.4 完全重写了模板解析器。在旧版本,Vue 使用递归下降解析器,该解析器依赖了大量正则表达式和前向搜索。

新的解析器使用基于htmlparser2的状态机 tokenizer(分词器),它仅迭代整个模板字符串一次。结果是对于所有尺寸的模板而言,解析器始终优化 2 倍。得益于 Vue 广泛的测试用例和 ecosystem-ci,它也 100% 向后兼容 Vue 终端用户。

在将新的解析器与系统的其他部分集成时,开发团队还发现了进一步优化整体 SFC 编译性能的机会。基准测试显示,在生成源码映射的同时,编译 Vue SFC 的脚本和模板部分的时候,性能优化了约 44%,因此 Vue 3.4 应该会优化大多数使用 Vue SFC 的项目构建。

但是请注意,Vue SFC 编译只是现实项目中整个构建过程的一部分。与单独的基准测试相比,端到端构建时间的最终收益可能要小得多。

在 Vue 核心库之外,新的解析器还将优化 Volar/vue-tsc,以及需要解析 Vue SFC 或模板的社区插件的性能,比如 Vue Macros。

  • 更高效的响应性系统 (Reactivity System)

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

比如下面的场景:

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 之前的版本,每当 count.value 变更时,即使计算结果不变,也会触发 watchEffect 的回调。通过 3.4 优化,现在仅当计算结果实际发生变更时才会触发回调。

  • v-bind 同名简写

下面用例:

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

可简写为:

<img :id :src :alt />

Vue 团队表示,最初他们担心这种用法会与布尔属性混淆。但在重新审视该功能后,考虑到其动态特性,他们认为v-bind的行为比原生属性更像 JavaScript 是有意义的。

详情查看发布公告


相關推薦

2024-01-12

可参考《官网介绍》。 Socket.D.js 兼容更新说明 是近期发布的 socket.d 协议 js client 实现。经过社区的努力,现已: 兼容 h5(浏览器) 兼容 uniapp(浏览器、android, ios) 兼容 微信小程序(wx 接口)//新增 兼容 node.js Socke

2023-01-09

月,Vue 的默认版本切换到了 3.x;最新的稳定版本是 11 月发布的 Vue 3.2.45。尤雨溪称,这一转变标志着 v3 框架的所有官方部分都已准备就绪,包括对提供最新最佳实践指南的文档进行重大修改。不过其目前仍处于生态系统迁移到

2023-06-06

给了运行的程序,自身仅占用很少一部分。 IceWM 3.4 版本发布了,IceWM 3.4 的新功能主要是改进键绑定的方式:支持键绑定到移位键、文字 Latin-1 字符,并支持键绑定中的所有 UTF-8 代码点。 IceWM 3.4 还支持重新解析键盘布局更

2024-09-22

WaitAdmin开源后台系统(PHP版) v1.3.4 已经发布 此版本更新内容包括: 2024-09-21 WaitAdmin v1.3.4 主要更新如下: 1.修复附件存在无限选择bug 2.优化升级composer相关的依赖包 3.优化升级echarts版本到v5.5.1 4.优化升级Layui版本v2.9.13 -> v2

2022-10-14

Linux 上已经原生支持 Wayland。官方称如果一切顺利,即将发布的 Blender 3.4 将引入此功能。 Blender 是一款跨平台的 3D 图形设计软件,可以在 Linux、macOS 以及 Windows 系统下运行。与其他 3D 建模工具相比,Blender 对内存和驱动的需

2023-08-28

站,聊聊 AI 大模型与底层技术 >>> bootx-platform v1.3.4 已经发布,单体式应用开发框架。 此版本更新内容包括: 新增: 通用导入组件 新增: 小程序端脚手架 新增: 小程序后端对接相关配置 新增: 敏感字管理和过滤功能 新

2024-10-08

SamWaf v1.3.4 已经发布,轻量级网站应用防火墙 此版本更新内容包括: Changelog Features feat:增加显示编译器版本号 feat:增加负载均衡 Others ci:运行支持windows 2008r2环境. 详情查看:https://gitee.com/samwaf/SamWaf/releases/v1.3.4

2022-11-21

Next Terminal v1.3.4 已经发布,HTML5 的远程桌面网关。 此版本更新内容包括: 修复mysql模式下「资产授权列表」「用户授权列表」「用户组授权列表」无法使用的问题 fixed #315 修复资产新增、修改无权限的缺陷 fixed #314 修复

2024-10-24

Bean Searcher 是什么? 它是一款专注高级查询的只读 ORM,只需一行代码,即可为应用赋能高级查询。 快来看它如何让你的效率提升 100 倍:https://juejin.cn/post/7027733039299952676 快来看它为何不能被 MP 替代:https://juejin.cn/post/709241

2022-09-02

昆仑管理系统 v1.3.4 发布了! 更新日志 1、增加快捷导航管理菜单; 2、优化监控统计、资源监控’菜单; 3、更新个人中心页面,增加角色权限和账号绑定设置; 4、优化并修复前端及后台若干问题 。 系统介绍 昆仑管

2024-10-20

Spring Data 2024.1 已经进入候选发布阶段,RC1 现已发布。GA 版本则计划于 11 月中旬发布。 公告指出,此版本完善了跨模块的 Value Expression 支持,让用户能够利用@Query中的属性占位符以及现有的 SpEL 支持。Spring Data fragments 的开发人

2024-01-09

carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,支持链式调用、农历和 gorm、xorm 等主流 orm。 目前已被 awesome-go-cn 收录,如果您觉得不错,请给个 star 吧 github.com/golang-module/carbon gitee.com/golang-module/carbo

2024-09-25

Bug 修复 当 AbstractRoutingDataSource 被包装时,management.health.db.ignore-routing-datasources=true 无效#42322 OAuth2ClientProperties 验证错误消息中缺少详细信息#42279 未使用且配置错误的 SSL 包导致的 FileNotFoundException #42169 当 spring-web 不

2023-10-20

【源创会预告】1024 程序员节(的前两天),相约开源PHP办公室,我们一起聊 AI!>>> 1、smart-http 简介 smart-http 是一款可编程式 HTTP 应用微内核。它是目前市面上为数不多即能严格准守 RFC2616 规范,又兼顾卓越性能的 Http 服务器