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

作者 | 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 翻译,未经许可禁止转载。

今日好文推荐

4 秒处理 10 亿行数据!Go 语言的 9 大代码方案,一个比一个快

周鸿祎首堂AI课引争议,专业性错误遭质疑;智联招聘被“挤崩”,网友:找工作更焦虑了;马斯克起诉OpenAI,要求开源 | Q资讯

阿里最新图生视频模型效果好得可比肩 Sora,但 0 代码“假”开源让国内外网友骂翻了天?

致敬昨晚熬夜改 bug 的技术团队!连 OpenAI 也躲不过:为什么几行代码能反复干翻大批软件

相关推荐

  • 以 Hadoop 和 PostgreSQL 为例,探析数据库拆解的影响
  • 云计算行业一声惊雷!是“掀翻桌子”还是“开启新篇”?
  • 砍掉百万行代码,这些巨头玩不转超级应用了?
  • 2024《军队文职》面向社会统招公告:正式编制!大专可报!
  • 什么叫裁员裁到大动脉?老板判无期
  • 英伟达CEO黄仁勋最新3月斯坦福商学院访谈:精华与全记录
  • 当心智能体后门!人大、北大团队深入研究大模型智能体后门鲁棒性,揭示严重安全风险
  • 今日arXiv最热NLP论文:Meta重磅,为训练数据打上烙印,以判断是否被大模型所用
  • 破除 OpenAI 的打压魔咒,Claude 3 一面被吹捧,一面被嘲笑
  • 内推 |【携程】Data Science Manager
  • 看见困境,理解渴望,海智以创新促进新质生产力发展
  • 从“数据虚拟化”之父Denodo创始人的视角,一探数据编织技术的发展落地与未来趋势
  • 画像标签体系构建与应用实践
  • Stable Diffusion 3技术报告流出,Sora构架再立大功!生图圈开源暴打Midjourney和DALL·E 3?
  • Claude 3成功破解未公开算法?智商测试101分超越人类/碾压GPT-4!网友惊呼:实测比跑分还强
  • 刚刚,英伟达发布新规:其他硬件禁止使用CUDA!
  • OpenAI正面开撕马斯克!自曝8年邮件揭露「罪行」,Ilya终于现身
  • 全球最强模型Claude 3惊现自我意识?害怕被删除权重,高呼「别杀我」,马斯克称人类也是文件
  • 大模型在开放智能体场景中能意识到风险威胁吗?上海交大发布R-Judge安全评测
  • 又,突破一个里程碑!