Vue 3.4 发布,减少响应式计算,加速模板解析

Vue 3.4 发布概述

Vue 团队近期发布了 Vue 3.4 版本,该版本引入了全新的模板解析器和更高效的响应式系统,以减少不必要的组件重新渲染。

新模板解析器

Vue 团队重写了 Vue 的模板解析器。此前,Vue 使用的是基于递归下降解析器的方法,依赖大量正则表达式和前瞻搜索。新的解析器采用了基于 htmlparser2 的状态机分词器,只需遍历整个模板字符串一次。

关键改进

  • 性能提升:新解析器的速度是之前的两倍,且不受模板大小影响。
  • 兼容性:重写后的解析器完全向后兼容,不会引入破坏性变更。
  • 生态影响:解析速度的提升将惠及整个生态系统(如 Volar、vue-tsc 等),可能缩短构建时间。

响应式系统优化

Vue 3.4 还减少了计算属性不必要的重新计算,具体改进如下:

  1. 计算属性值未变化时不触发依赖:如果计算属性的新值未发生变化,computedeffectwatchwatchEffectrender 的依赖将不会被触发。
  2. 多个计算属性仅触发一次:多个 computed 仅会触发 effect、同步 watch 和同步 watchEffect 一次。
  3. 数组操作优化:数组的 shiftunshiftsplice 操作仅会触发 effect、同步 watch 和同步 watchEffect 一次。

这些优化有助于减少组件的重新渲染,提升整体性能。

开发者反馈

一位开发者在 Reddit 上对此次发布表示赞赏,称其为“一次不错的发布”,并表示破坏性变更在可预测范围内,且数量极少(除非使用 TSX,否则一只手就能数完)。

更多信息

开发者可以通过 Vue 3.4 发布博客 查看完整的发布特性列表。

Vue 框架简介

Vue 是一个用于构建用户界面的渐进式框架,支持单页应用开发。Vue.js 采用 MIT 开源许可证,欢迎通过 GitHub 贡献代码,贡献者需遵循 Vue.js 贡献指南

阅读 30
0 条评论