Vue.js 框架第三版源碼公佈
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 的功能尚未移植過來:
- 服務器端渲染
<keep-alive>
<transition>
- 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 和安全修復更新。