Vue.js 3.0 "One Piece" 已正式發布,此框架新的主要版本提供了更好的性能、更小的捆綁包體積、更好的 TypeScript 集成、用于處理大規模用例的新 API,并為框架未來的長期迭代奠定了堅實的基礎,
3.0 版本的開發周期長達兩年多,期間產生了 30+ RFCs、2600+ commits、628 pull requests,以及核心倉庫之外的大量開發和檔案作業,
Vue 3.0 的發布標志著此框架整體上已處于可用狀態,盡管框架的某些子專案可能仍需要進一步的開發才能達到穩定狀態(特別是 devtools 中的路由和 Vuex 集成),不過現在仍然是開始使用 Vue 3 啟動新專案的合適時機,官方還鼓勵庫作者現在可以開始升級專案以支持 Vue 3,查閱《Vue 3 Libraries Guide》以獲取有關所有框架子專案的詳細資訊,
分層內部模塊 (Layered internal modules)
Vue 3.0 core 仍然可以通過<script>標簽進行使用,但其內部架構已被徹底重寫為一組解耦的模塊,新架構提供了更好的可維護性,并允許使用者通過 tree-shaking 來減少多達一半的 runtime 大小,
這些模塊還將許多底層 API 暴露出來,可用于許多高級用例:
-
編譯器為定制 build-time 提供了對自定義 AST 轉換的支持(例如 build-time i18n) -
內核 runtime 提供了優先級最高的 API,用于創建針對不同渲染目標(例如原生移動設備、WebGL 或終端)的自定義渲染器,默認 DOM 渲染器使用相同的 API 構建 -
@vue/reactivity模塊匯出的函式可以直接訪問 Vue 的 reactivity 系統,其本身也可以作為一個獨立的程式包使用,它還可以與其他模板解決方案(例如 vue-lit)搭配使用,甚至可以在非 UI 場景中使用
用于處理大規模用例的新 API
在 Vue 3 中,基于物件的 2.x API 基本沒有變化,不過 3.0 還引入了 Composition API,旨在解決 Vue 在大型應用程式中的使用痛點,Composition API 構建于 reactivity API 之上,可以實作類似于 React 鉤子(React hooks)的邏輯組合和重用,與 2.x 基于物件的 API 相比,擁有更靈活的代碼組織模式和更可靠的型別推導,
通過 @vue/composition-api 插件,Composition API 還可以與 Vue 2.x 搭配使用,并且目前已經有適用于 Vue 2 和 3 的 Composition API 實用程式庫(例如 vueuse,vue-composable),
提升性能
與 Vue 2 相比,Vue 3 在捆綁包體積(通過 tree-shaking 減小約 41% 大小)、初始渲染(速度提升約 55%)、更新(速度提升約 133%)和記憶體使用率(降低約 54%)等方面有了顯著的性能提升,
Vue 3 采用了"compiler-informed Virtual DOM"的方法:模板編譯器執行激進的優化并生成渲染函式代碼,以提升靜態內容訪問速度,為系結型別留下 runtime 提示,最重要的是,將內部的動態節點扁平化處理,以降低 runtime 遍歷的成本,因此,用戶可以獲得兩全其美的效果:通過模板優化編譯器的性能,或者在用例需要時通過手動渲染函式直接控制,
改進與 TypeScript 的集成
Vue 3 使用 TypeScript 撰寫,具有自動生成、測驗和捆綁的型別定義等特性,Composition API 可與型別推導很好地搭配使用,Vetur,Vue 3 的官方 VSCode 擴展,現在支持模板運算式,以及利用 Vue 3 改進的內部型別進行 props 型別檢查,
實驗性功能
為單檔案組件(SFC, Singe-File Components),即 .vue 檔案提供了兩項新特性:
-
<script setup>:用于在 SFC 中使用 Composition API 的語法糖 -
<style vars>:SFC 中狀態驅動的 CSS 變數
上述已在 Vue 3.0 中實作并可用,但僅出于收集反饋的目的而提供,在合并 RFC 之前,它們將保持實驗性狀態,
此外還實作了一個當前未記錄的組件,該組件允許在初始渲染或分支切換時等待嵌套的異步依賴項(異步組件或包含async setup()的組件),目前正在與 Nuxt.js 團隊一起測驗和迭代此功能(即將在 Nuxt 3發布),并且可能會在 3.1 中到達穩定,
下一步
發布后的短期內,開發團隊將專注于:
-
版本遷移 -
支持 IE11 -
新 devtools 中的路由和 Vuex 集成 -
對 Vetur 中模板型別推導的進一步改進
目前,Vue 3 和 v3-targeting 專案的檔案網站、GitHub 分支和 npm dist 標簽將保持 next-denoted 狀態,這意味著使用npm install vue命令仍會安裝 Vue 2.x,而要安裝 Vue 3 需使用npm install vue@next命令,官方計劃在 2020 年底前將所有的 doc 鏈接、分支和 dist 標簽都切換為默認 3.0,
同時,團隊已開始啟動 2.7 的開發作業計劃,這將是 2.x 的最后一個次要版本,2.7 將向后移植來自 v3 的兼容改進,并會提示有關 v3 中已洗掉/更改的 API 使用情況的警告,團隊表示計劃在 2021 年第一季度開發 2.7,發布后將直接變為 LTS 版本,具有 18 個月的維護周期,
使用
了解有關 Vue 3.0 的更多資訊,訪問新檔案網站,如果是 Vue 2.x 用戶,訪問遷移指南,
詳情查看: https://github.com/vuejs/vue-next/releases/tag/v3.0.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/98771.html
標籤:其他
上一篇:軟體架構的本質
