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 还支持重新解析键盘布局更

2022-10-14

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

2023-08-28

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

2022-11-21

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

2022-09-02

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

2024-01-09

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

2023-10-20

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

2023-10-10

Apache Hudi 0.14.0 现已发布。公告指出,该版本标志着一个重要的里程碑,具有一系列新功能和增强功能。其中包括引入Record Level Index、自动生成记录键 、用于增量读取的 hudi_table_changes函数等等。 值得注意的是,此版本还

2022-08-13

Boost 是一套用于 C++ 编程语言的库,为线性代数、伪随机数生成、多线程、图像处理、正则表达式和单元测试等任务和结构提供支持。它包含了 164 个单独的库(截至 1.76 版)。 已知问题 这些是库的作者提出的补丁,由于发现

2023-10-29

OpenSSL 3.2 首个 Beta 版本已发布。 OpenSSL 3.2 实现了针对 QUIC 的初步客户端,QUIC 是 Google 开发的通用传输层网络协议,后来被 IETF 采用。 对于 OpenSSL 3.3 和明年的 OpenSSL 3.4,他们的目标是进一步完成此实现。 此外还增加了对 TLS 1.3

2024-04-01

Scala 2.13.13 现已发布。这是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。此版本更新亮点如下: 语言 支持 binary integer literals using 0b,如 Java 中一样(#10656) 兼容性 TASTy

2023-06-30

Proxmox Backup Server 3.0 已正式发布。 新版本基于 Debian 12 "Bookworm",并使用了较新内核版本:Linux 6.2,此外还引入了 ZFS 2.1.12。 Proxmox Backup Server (PBS) 是与 PVE 配套的备份解决方案,用于备份和恢复虚拟机、容器和物理主机。 通