尤雨溪:Vue未來(lái)性能將大幅提升!Vite 打包效率上升100%!
前言
大家好,我是林三心,用最通俗易懂的話講最難的知識(shí)點(diǎn)是我的座右銘,基礎(chǔ)是進(jìn)階的前提是我的初心~
在 2024 年 2 月 28 號(hào) - 2024 年 2 月 29 號(hào),Vue 召開(kāi)了 VueJS Amsterdam 2024
大佬尤雨溪進(jìn)行了開(kāi)場(chǎng)主旨演講,并回顧了 Vue 十年來(lái)的歷程,從一個(gè)視圖層工具,逐成為了一個(gè)非常出色的、擁有強(qiáng)大生態(tài)的前端框架
圖片
圖片
回顧 Vue 3.4
首先回顧了一下再 2023 年末發(fā)布的 Vue3.4,主要列舉了:
- 重寫(xiě)了模板編譯器,性能提升明顯
- watchEffect 響應(yīng)式效率的提升
- defineModel 從實(shí)驗(yàn)性轉(zhuǎn)為正式API
- 簡(jiǎn)化了 v-model 和 v-bind 的寫(xiě)法
圖片
展望 Vue3.5
接著是對(duì)于 Vue3.5 的展望,其實(shí)也算是透露了未來(lái) Vue3.5 即將包含的新特性,主要就是對(duì)于框架底層的優(yōu)化
第一個(gè)優(yōu)化就是響應(yīng)式的優(yōu)化。主要是在調(diào)度任務(wù)重使用位運(yùn)算標(biāo)記優(yōu)化 queueJob 任務(wù)隊(duì)列,帶來(lái)的效果非常明顯:內(nèi)存使用率得到了 56% 的提升。其實(shí)這個(gè)優(yōu)化早在 無(wú)虛擬DOM版本Vue——Vapor 中就實(shí)行了,現(xiàn)在應(yīng)該是發(fā)現(xiàn)效果不錯(cuò),所以把這項(xiàng)優(yōu)化移植到主版本 Vue 中
第二個(gè)優(yōu)化就是 @vue/reactivity 暴露出一個(gè) readArray 方法,它是一個(gè)面向性能的高級(jí)響應(yīng)式函數(shù),它返回原始數(shù)組并對(duì)其進(jìn)行完整跟蹤,并可以用入?yún)⒅甘臼欠裆疃雀欗憫?yīng)式數(shù)組。這個(gè)方法在面對(duì)大數(shù)組的時(shí)候,甚至能得到十倍性能的提升
在 SSR 服務(wù)器渲染方面,也優(yōu)化了 Suspend 等特性
圖片
Vapor
Vapor 是 無(wú)虛擬DOM版本Vue,目前還在實(shí)驗(yàn)性階段,但是這個(gè)項(xiàng)目目前在逐步完善,已經(jīng)可以在 playground 中運(yùn)行 TodoMVC 程序
我之前也寫(xiě)過(guò)一篇文章專(zhuān)門(mén)介紹 Vapor,感興趣的可以去這里看看:
圖片
Vite 打包性能提升
Vite 的最新版本將引入一種名為 Rolldown 的新型打包工具,這是基于 Rust 的 Rollup 兼容 API 的重新實(shí)現(xiàn)。這項(xiàng)工具經(jīng)過(guò)長(zhǎng)時(shí)間開(kāi)發(fā),支持了包括樹(shù)搖(tree shaking)在內(nèi)的功能,能夠提供比 ESbuild 更快兩倍的編譯效率。一旦 Rolldown 能夠完全取代 Rollup 和 ESbuild,開(kāi)發(fā)者在使用 Vite 進(jìn)行開(kāi)發(fā)和生產(chǎn)構(gòu)建時(shí),將能夠體驗(yàn)到顯著的性能提升,無(wú)需手動(dòng)切換
Rolldown 的底層驅(qū)動(dòng)來(lái)自一個(gè)名為 Oxc 的工具,它是一個(gè)用 Rust 語(yǔ)言編寫(xiě)的高效 JavaScript 解析器,該體系還包括了 TypeScript 轉(zhuǎn)譯等功能。一旦這套工具組合完善,將能夠在構(gòu)建 Vue 項(xiàng)目時(shí),將 Babel、ESbuild、Rollup、Tercer 等工具整合為一體,使得開(kāi)發(fā)流程更加統(tǒng)一、高效,同時(shí)也更易于理解
圖片
Vue?。。yds?。?!
Vue 走過(guò)十年了!感謝 Vue!加油,未來(lái),我們一起前行!