Rust! 无VDom! 尤雨溪解析 Vue.js 2024 新特性

简介: Rust! 无VDom! 尤雨溪解析 Vue.js 2024 新特性

B站搜索“云前端”观看视频版

在 VueJS Amsterdam 2024 大会首日,Vue 创始人 Evan You 进行了开场主旨演讲。他首先回顾了 Vue 十年以来的累累硕果,指出 VueJS 从一个视图层工具,成功演化出全流程的社区生态。

Vue 3.4

image.png

谈到 Vue 3 的发展时他回顾了 2023 年末发布的 Vue 3.4。在这个版本中,Vue 完全重写了模板解析器;新的解析器不再依赖于许多正则表达式和前瞻搜索等,而是使用基于 htmlparser2 中分词器的状态机 -- 这使得解析速度至少提高了两倍。

3.4 还对响应式系统进行了实质性的重构,目的是提高计算属性的重新计算效率。在 3.4 之前,即使计算结果保持不变,每次 count.value 都将触发 watchEffect 的回调;而 3.4 之后的回调现在仅在计算结果实际更改时触发。

简化支持 v-model 的 defineModel 和标识为冒号 : 的 v-bind 同名速记也是这个版本的特性。

Vue 3.5

image.png

接下来 Evan You 透露了在即将到来的 Vue 3.5 版本中包含的特性,这个版本主要是在框架底层的优化。

一方面是响应式系统上的提升。包括在调度任务中使用位运算标记优化 queueJob 任务队列,这项优化被从 vue 试验性的无虚拟 DOM 版本 Vue Vapor 中移植回主版本中,使得内存使用率得到了 56% 的提升。

还有一项对数组追踪的优化:在处理响应式的大数组时,此项优化甚至可以获得十倍性能收益;对于格外重视性能的开发者来说,Vue 内置的数组方法并不完美。@vue/reactivity 暴露的readArray 方法是一个面向性能的高级响应式函数,它返回原始数组并对其进行完整跟踪,并可以用入参指示是否深度跟踪响应式数组。

公开readArray的原因在于,对于某些内置数组函数无法很好覆盖的高性能操作场景,这个API非常有用。例如,Vue 的 v-for 循环会使用此功能,响应式矩阵的乘法运算可以显著受益以提升计算速度,以及新增的 Object.groupBy API 可能在未来广泛应用,由于它并非数组实例方法,因此不能自动进行优化,但可以通过用户自定义代码结合 readArray 来提高性能。

在 SSR 服务器渲染方面,也优化了 Suspend 等特性。

Vapor

image.png

除了 Vue 3.5,受到 Solid.js 启发的无虚拟 DOM 版本的 Vue Vapor 日臻完善,已经可以在 playground 中运行 TodoMVC 程序。

在计划中,组件级别的优先级控制将是重要工作,这将保证即便组件数量庞大,整体性能也不会受到影响,不知道是否会借鉴 React 的异步可中断方式呢?

DX

image.png

在开发体验方面,vite 的新版本中可能会包含新的打包工具 Rolldown,这是一个具有兼容性 API 的 Rust 移植版 Rollup。该工具已经经历了长期的开发,目前已经支持 tree shaking 等特性,基本达到了 ESbuild 两倍的编译速度。等其能够同时替换 Rollup 和 ESbuild 之后,开发者无论是在开发模式还是生产模式下,都能无缝地自动获得巨大的性能收益。

从更底层来说,Rolldown 使用了一项叫做 Oxc 的工具,Oxc 的核心是一种用 Rust 编写的 高性能 JS Parser,在其体系中还有 Typescript 转移等工具。值得注意的是,该工具一旦最终成型,构建 Vue 工程时 Babel、ESbuild、Rollup、Tercer 等工具将合而为一,开发过程会变得统一、高效且易于理解。

We are far from done

最后,Evan You 再次回顾了十年的历程,表示 VueJS 生态从刚刚推出时受到的竭诚欢迎,真可谓占尽天时,那种勃勃生机、万物竟发的境界,犹在眼前。而在十年之后,团队和社区仍在做出很多有趣的贡献,虽然从 Vue 2 到 Vue 3 的升级过程坎坷,但无论怎么样,随着 Vue 2 的官方支持正式结束,新的社区仍会保持优势。

Vue 或许并不总是时髦的新玩意,但会致力于总是做好新的改变



相关文章
|
2月前
|
JavaScript 前端开发 开发者
Nest.js控制器深度解析:路由与请求处理的高级特性
以上就是对 NestJS 控制层高级特性深度解析:从基本概念到异步支持再到更复杂场景下拦截其与管道等功能性组件运用都有所涉及,希望能够帮助开发者更好地理解和运用 NestJS 进行高效开发工作。
293 15
|
2月前
|
JavaScript 前端开发 IDE
TypeScript vs. JavaScript:技术对比与核心差异解析
TypeScript 作为 JavaScript 的超集,通过静态类型系统、编译时错误检测和强大的工具链支持,显著提升代码质量与可维护性,尤其适用于中大型项目和团队协作。相较之下,JavaScript 更灵活,适合快速原型开发。本文从类型系统、错误检测、工具支持等多维度对比两者差异,并提供技术选型建议,助力开发者合理选择。
435 1
|
2月前
|
存储 JavaScript 前端开发
JavaScript 语法全面解析
JavaScript 语法体系丰富且不断更新,从基础的变量声明、数据类型,到复杂的函数、对象、异步语法,每个知识点都需要开发者深入理解并灵活运用。本文梳理的 JS 语法核心内容,可为开发者提供系统的学习框架,后续还需通过大量实践(如编写交互组件、实现业务逻辑)巩固知识,逐步提升 JS 编程能力,应对前端开发中的各类挑战。
|
5月前
|
机器学习/深度学习 JavaScript 前端开发
JS进阶教程:递归函数原理与篇例解析
通过对这些代码示例的学习,我们已经了解了递归的原理以及递归在JS中的应用方法。递归虽然有着理论升华,但弄清它的核心思想并不难。举个随手可见的例子,火影鸣人做的影分身,你看到的都是同一个鸣人,但他们的行为却能在全局产生影响,这不就是递归吗?雾里看花,透过其间你或许已经深入了递归的魅力之中。
211 19
|
6月前
|
JSON 前端开发 Serverless
Mock.js 语法结构全解析
Mock.js 的语法规范介绍,从数据模板定义规范和数据占位符定义规范俩部分介绍, 让你更好的使用 Mock.js 来模拟数据并提高开发效率。
|
8月前
|
数据采集 前端开发 JavaScript
金融数据分析:解析JavaScript渲染的隐藏表格
本文详解了如何使用Python与Selenium结合代理IP技术,从金融网站(如东方财富网)抓取由JavaScript渲染的隐藏表格数据。内容涵盖环境搭建、代理配置、模拟用户行为、数据解析与分析等关键步骤。通过设置Cookie和User-Agent,突破反爬机制;借助Selenium等待页面渲染,精准定位动态数据。同时,提供了常见错误解决方案及延伸练习,帮助读者掌握金融数据采集的核心技能,为投资决策提供支持。注意规避动态加载、代理验证及元素定位等潜在陷阱,确保数据抓取高效稳定。
233 17
|
8月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
8月前
|
存储 JavaScript 前端开发
全网最全情景,深入浅出解析JavaScript数组去重:数值与引用类型的全面攻略
如果是基础类型数组,优先选择 Set。 对于引用类型数组,根据需求选择 Map 或 JSON.stringify()。 其余情况根据实际需求进行混合调用,就能更好的实现数组去重。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
12月前
|
自然语言处理 JavaScript 前端开发
ECMAScript 6 的出现为 JavaScript 带来了许多新的特性和改进
这些只是ES6的一些主要特性,它们极大地增强了JavaScript的功能和表现力,使得JavaScript在大型应用开发、前端框架等领域能够更加高效地编写复杂的应用程序。

推荐镜像

更多
  • DNS