又双叒!Vue3.4正式发布,总结了3个超级爽点!

1,249 阅读3分钟

前言

大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心~

背景

在 12 月 28 号这一天,尤大大宣布了 Vue3.4 的正式发布

然后我看到了好多作者都去翻译并总结 Vue3.4 的整体更新点

其实我觉得所有的更新点并不是我们开发者想要知道的,我们只想要知道部分的比较有用的更新点,所以我总结了 Vue3.4 的一些比较有用的更新点

defineModel 稳定版!

defineModel 这个功能其实 Vue3.3 就有了,感兴趣的可以去看看我之前发的文章:

但是在 3.3 中其实 defineModel 只是实验性功能,但是在 3.4 中,defineModel 转正了!你可以放心地去使用了!!!

更高效的反应

我们来看这一段代码,一开始 0 % 2 === 0,所以打印 true,接着修改 count 为 2,其实 isEven 还是 true,因为 2 % 2 === 0,但是 watchEffect 确还会再执行一次,这显然是没意义的

在 3.4 中,优化了这个功能,isEven 一直是 true,那么 watchEffect 就不会再执行

此外,在 3.4 中:

  • 多个计算的 dep 更改仅触发一次同步效果,有点类似于防抖的效果
  • 数组的 shift, unshift, splice 方法仅触发一次同步效果,这样数组批量操作时,更新次数会降到最低,从而提高性能

模板解析速度提升 2 倍

总结:模板编译解析的速度,提升 2 倍,这意味着整体代码编译的速度更快了!!!

在 3.4 中,完全重写了模板解析器。以前,Vue 使用递归下降解析器,它依赖于许多正则表达式和前瞻搜索。新的解析器使用基于 htmlparser2 中的分词器的状态机分词器,该分词器仅循环访问整个模板字符串一次。其结果是,对于各种大小的模板,解析器的速度始终是原来的两倍。由于我们广泛的测试用例和 ecosystem-ci,它也 100% 向后兼容 Vue 最终用户。

在将新的解析器与系统的其他部分集成时,我们还发现了一些进一步提高整体 SFC 编译性能的机会。基准测试显示,在生成源映射的同时编译 Vue SFC 的脚本和模板部分时,有 ~44% 的改进,因此 3.4 应该会为大多数使用 Vue SFC 的项目带来更快的构建速度。但是,请注意,在现实世界项目中,Vue SFC 编译只是整个构建过程的一部分。与孤立的基准测试相比,端到端构建时间的最终收益可能要小得多。 在 Vue 核心之外,新的解析器还将有利于 Volar / vue-tsc 的性能,以及需要解析 Vue SFC 或模板的社区插件,例如 Vue 宏

结语 & 加学习群 & 摸鱼群

我是林三心

  • 一个待过小型toG型外包公司、大型外包公司、小公司、潜力型创业公司、大公司的作死型前端选手;
  • 一个偏前端的全干工程师;
  • 一个不正经的掘金作者;
  • 一个逗比的B站up主;
  • 一个不帅的小红书博主;
  • 一个喜欢打铁的篮球菜鸟;
  • 一个喜欢历史的乏味少年;
  • 一个喜欢rap的五音不全弱鸡

如果你想一起学习前端,一起摸鱼,一起研究简历优化,一起研究面试进步,一起交流历史音乐篮球rap,可以来俺的摸鱼学习群哈哈,点这个,有7000多名前端小伙伴在等着一起学习哦 --> 摸鱼沸点