10 月 5 日凌晨,Vue.js 框架的作者兼核心開發者尤雨溪公布了尚處於 Pre-Alpha 狀態的 Vue 3 源碼(https://github.com/vuejs/vue-next)。作者表示,Vue 3 主要的架構改進、優化和新功能均已完成,剩下的主要任務是完成一些 Vue 2 現有功能的移植。
(說學不動的童鞋抓緊剩餘的國慶假期擼一遍源碼吧 : D)
穩定版的具體發布時間尚未提及,不過根據 Vue 在 GitHub repo 公開展示的 Roadmap,後面應該還會發布 Alpha(計劃於 Q4 發布)、Beta 等版本,所以至少要等到 2020 年第一季度才有可能發布 3.0 穩定版。
尤雨溪在去年發表的“Vue 3.0 Updates”主題演講中曾強調過 Vue 3 包含的五個關鍵變化:
-
速度
-
體積
-
可維護性
-
面向原生
-
易用性
下面了解一下針對 Vue 3 計劃並已實現的主要架構改進和新功能:
-
編譯器(Compiler)
-
使用模塊化架構
-
優化 “Block tree”
-
更激進的 static tree hoisting 功能
-
支持 Source map
-
內置標識符前綴(又名 “stripWith”)
-
內置整齊打印(pretty-printing)功能
-
移除 source map 和標識符前綴功能後,使用 Brotli 壓縮的瀏覽器版本精簡了大約 10KB
-
運行時(Runtime)
-
速度顯著提升
-
同時支持 Composition API 和 Options API,以及 typings
-
基於 Proxy 實現的數據變更檢測
-
支持 Fragments
-
支持 Portals
-
支持 Suspense w/
async setup()
最後,還有一些 2.x 的功能尚未移植過來:
-
服務器端渲染
-
-
-
Compiler DOM-specific transforms
-
v-on
DOM 修飾符 -
v-model
-
v-text
-
v-pre
-
v-once
-
v-html
-
v-show
對了,還有與瀏覽器兼容性方面的問題,雖然去年尤雨溪曾提出會支持 IE11,但目前發布的 Pre-Alpha 版本打包後的代碼是 ES2015+,並且【尚未】支持 IE11。
至於與舊版本的兼容情況,因為 Vue 3.0 是主要版本,所以會包含一些重大變更。不過,開發組會非常重視兼容性問題,他們也將盡快開始傳達這些重大變更,並做了這樣的保證:除了渲染函數 API 和作用域插槽語法之外的所有內容都將保持不變,或者通過兼容性構建讓其與 2.x 保持兼容。
總的來說,Vue 3.0 雖然會對頂級 API 進行重大的修整,但依然會保持與 2.x 的兼容。此外,2.x 的最後一個次要版本將成為 LTS,並在 3.0 發布後繼續享受 18 個月的 bug 和安全修復更新。
來源:cnBeta