前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue 3.4 发布,最小化响应性计算并加速了模板解析

Vue 3.4 发布,最小化响应性计算并加速了模板解析

作者头像
深度学习与Python
发布2024-03-07 16:36:55
880
发布2024-03-07 16:36:55
举报

作者 | Bruno Couriol

译者 | 张卫滨

策划 | 丁晓昀

Vue 团队最近发布了 Vue 3.4。这个新的版本采用了新的模板解析器,据称其速度提升了两倍,同时提供了更高效的响应性系统,减少了不必要的组件重渲染。

在新的版本中,Vue 团队重写了 Vue 的模板解析器。团队解释到:

以前,Vue 使用的是一个递归下降(recursive descent)解析器,依赖许多正则表达式和前向搜索。新的解析器使用了基于 htmlparser2 的状态机分词器(tokenizer),它仅会循环访问整个字符串一次。

团队宣布,在重写之后,无论模板的大小如何,解析器始终都能比原来快两倍。此外,这次重写不会造成任何的破坏性变更,应该完全向后兼容。解析速度的提升将会惠及整个生态系统(如 Volar、vue-tsc 以及使用解析器的其他社区组件),并且可能会缩短构建的时间。

Vue 3.4 还减少了对已计算属性的不必要重新计算。相应地 pull request 提供了详细信息:

如果computed的新值没有发生变化,则不会触发computedeffectwatchwatchEffectrender依赖 多个computed,只会触发effect、同步watch、同步watchEffect一次 数组的shiftunshiftsplice(只会触发effect、同步watch、同步watchEffect一次由于组件可能会在它们的数据依赖发生变化时重新渲染,所以在这些依赖的响应性计算中提高效率可以减少不必要的重新渲染。

有位开发人员在 Reddit 上庆祝了新版本的发布:

这又是一个很不错的版本,所有的破坏性变更都是可预测的,我们伸着手指头就能把它们数出来(除非你使用了 TSX,那样的话你最好有六根手指)关于该版本完整的特性列表,开发人员可以参阅相关的版本发布博客。

Vue 是一个用于构建用户界面(包括单页面应用程序)的渐进式框架。Vue.js 采用 MIT 开源协议。欢迎通过 Vue.js 的 GitHub 包 提供贡献,并遵循 Vue.js 贡献指南。

查看英文原文:

Vue 3.4 Released, Minimizes Reactive Computations, Speeds up Template Parsing (https://www.infoq.com/news/2024/02/vue-3-4-released/)

声明:本文由 InfoQ 翻译,未经许可禁止转载。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 InfoQ 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档