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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 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 或许并不总是时髦的新玩意,但会致力于总是做好新的改变



目录
打赏
0
8
8
0
32
分享
相关文章
金融数据分析:解析JavaScript渲染的隐藏表格
本文详解了如何使用Python与Selenium结合代理IP技术,从金融网站(如东方财富网)抓取由JavaScript渲染的隐藏表格数据。内容涵盖环境搭建、代理配置、模拟用户行为、数据解析与分析等关键步骤。通过设置Cookie和User-Agent,突破反爬机制;借助Selenium等待页面渲染,精准定位动态数据。同时,提供了常见错误解决方案及延伸练习,帮助读者掌握金融数据采集的核心技能,为投资决策提供支持。注意规避动态加载、代理验证及元素定位等潜在陷阱,确保数据抓取高效稳定。
50 17
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
全网最全情景,深入浅出解析JavaScript数组去重:数值与引用类型的全面攻略
如果是基础类型数组,优先选择 Set。 对于引用类型数组,根据需求选择 Map 或 JSON.stringify()。 其余情况根据实际需求进行混合调用,就能更好的实现数组去重。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
最细最有条理解析:事件循环(消息循环)是什么?为什么JS需要异步
度一教育的袁进老师谈到他的理解:单线程是异步产生的原因,事件循环是异步的实现方式。 本质是因为渲染进程因为计算机图形学的限制,只能是单线程。所以需要“异步”这个技术思想来解决页面阻塞的问题,而“事件循环”是实现“异步”这个技术思想的最主要的技术手段。 但事件循环并不是全部的技术手段,比如Promise,虽然受事件循环管理,但是如果没有事件循环,单一Promise依然能实现异步不是吗? 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您
C# 9.0 新特性解析
C# 9.0 是微软在2020年11月随.NET 5.0发布的重大更新,带来了一系列新特性和改进,如记录类型、初始化器增强、顶级语句、模式匹配增强、目标类型的新表达式、属性模式和空值处理操作符等,旨在提升开发效率和代码可读性。本文将详细介绍这些新特性,并提供代码示例和常见问题解答。
99 7
C# 9.0 新特性解析
Vue.js响应式原理深度解析:从Vue 2到Vue 3的演进
Vue.js响应式原理深度解析:从Vue 2到Vue 3的演进
149 17
PHP 8新特性解析与实战应用####
随着PHP 8的发布,这一经典编程语言迎来了诸多令人瞩目的新特性和性能优化。本文将深入探讨PHP 8中的几个关键新功能,包括命名参数、JIT编译器、新的字符串处理函数以及错误处理改进等。通过实际代码示例,展示如何在现有项目中有效利用这些新特性来提升代码的可读性、维护性和执行效率。无论你是PHP新手还是经验丰富的开发者,本文都将为你提供实用的技术洞察和最佳实践指导。 ####
73 1
iOS 14隐私保护新特性深度解析####
随着数字时代的到来,隐私保护已成为全球用户最为关注的问题之一。苹果在最新的iOS 14系统中引入了一系列创新功能,旨在增强用户的隐私和数据安全。本文将深入探讨iOS 14中的几大隐私保护新特性,包括App跟踪透明度、剪贴板访问通知和智能防追踪功能,分析这些功能如何提升用户隐私保护,并评估它们对开发者和用户体验的影响。 ####
|
5月前
|
PHP 7新特性深度解析
【10月更文挑战第40天】随着PHP 7的发布,这个广泛使用的语言带来了许多令人兴奋的新特性和性能改进。本文将深入探讨PHP 7的主要变化,包括类型声明、错误处理机制、性能优化等方面,帮助开发者更好地理解和应用这些新特性。
65 5
|
5月前
|
C# 10.0 新特性解析
C# 10.0 在性能、可读性和开发效率方面进行了多项增强。本文介绍了文件范围的命名空间、记录结构体、只读结构体、局部函数的递归优化、改进的模式匹配和 lambda 表达式等新特性,并通过代码示例帮助理解这些特性。
81 2

热门文章

最新文章

推荐镜像

更多