你期待已久的Vue 3 正式發(fā)布啦兢哭!

Vue.js 3.0 "One Piece" 已正式發(fā)布,此框架新的主要版本提供了更好的性能夫嗓、更小的捆綁包體積迟螺、更好的 TypeScript 集成、用于處理大規(guī)模用例的新 API舍咖,并為框架未來的長期迭代奠定了堅實的基礎矩父。

3.0 版本的開發(fā)周期長達兩年多,期間產生了 30+ RFCs排霉、2600+ commits窍株、628 pull requests,以及核心倉庫之外的大量開發(fā)和文檔工作攻柠。

Vue 3.0 的發(fā)布標志著此框架整體上已處于可用狀態(tài)球订。盡管框架的某些子項目可能仍需要進一步的開發(fā)才能達到穩(wěn)定狀態(tài)(特別是 devtools 中的路由和 Vuex 集成),不過現(xiàn)在仍然是開始使用 Vue 3 啟動新項目的合適時機瑰钮。官方還鼓勵庫作者現(xiàn)在可以開始升級項目以支持 Vue 3冒滩。查閱《Vue 3 Libraries Guide》以獲取有關所有框架子項目的詳細信息。

image

分層內部模塊 (Layered internal modules)

Vue 3.0 core 仍然可以通過<script>標簽進行使用浪谴,但其內部架構已被徹底重寫為一組解耦的模塊开睡。新架構提供了更好的可維護性因苹,并允許使用者通過 tree-shaking 來減少多達一半的 runtime 大小。

這些模塊還將許多底層 API 暴露出來篇恒,可用于許多高級用例:

  • 編譯器為定制 build-time 提供了對自定義 AST 轉換的支持(例如 build-time i18n)
  • 內核 runtime 提供了優(yōu)先級最高的 API扶檐,用于創(chuàng)建針對不同渲染目標(例如原生移動設備、WebGL 或終端)的自定義渲染器婚度。默認 DOM 渲染器使用相同的 API 構建
  • @vue/reactivity模塊導出的函數(shù)可以直接訪問 Vue 的 reactivity 系統(tǒng)蘸秘,其本身也可以作為一個獨立的程序包使用。它還可以與其他模板解決方案(例如 vue-lit)搭配使用蝗茁,甚至可以在非 UI 場景中使用

用于處理大規(guī)模用例的新 API

在 Vue 3 中醋虏,基于對象的 2.x API 基本沒有變化。不過 3.0 還引入了 Composition API哮翘,旨在解決 Vue 在大型應用程序中的使用痛點颈嚼。Composition API 構建于 reactivity API 之上,可以實現(xiàn)類似于 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"的方法:模板編譯器執(zhí)行激進的優(yōu)化并生成渲染函數(shù)代碼糖埋,以提升靜態(tài)內容訪問速度宣吱,為綁定類型留下 runtime 提示。最重要的是瞳别,將內部的動態(tài)節(jié)點扁平化處理征候,以降低 runtime 遍歷的成本。因此祟敛,用戶可以獲得兩全其美的效果:通過模板優(yōu)化編譯器的性能疤坝,或者在用例需要時通過手動渲染函數(shù)直接控制。

改進與 TypeScript 的集成

Vue 3 使用 TypeScript 編寫垒棋,具有自動生成卒煞、測試和捆綁的類型定義等特性。Composition API 可與類型推導很好地搭配使用叼架。Vetur畔裕,Vue 3 的官方 VSCode 擴展衣撬,現(xiàn)在支持模板表達式,以及利用 Vue 3 改進的內部類型進行 props 類型檢查扮饶。

實驗性功能

為單文件組件(SFC, Singe-File Components)具练,即 .vue 文件提供了兩項新特性:

  • <script setup>:用于在 SFC 中使用 Composition API 的語法糖
  • <style vars>: SFC 中狀態(tài)驅動的 CSS 變量

上述已在 Vue 3.0 中實現(xiàn)并可用,但僅出于收集反饋的目的而提供甜无。在合并 RFC 之前扛点,它們將保持實驗性狀態(tài)。

此外還實現(xiàn)了一個當前未記錄的<Suspense>組件岂丘,該組件允許在初始渲染或分支切換時等待嵌套的異步依賴項(異步組件或包含async setup()的組件)陵究。目前正在與 Nuxt.js 團隊一起測試和迭代此功能(即將在 Nuxt 3發(fā)布),并且可能會在 3.1 中到達穩(wěn)定奥帘。

下一步

發(fā)布后的短期內铜邮,開發(fā)團隊將專注于:

  • 版本遷移
  • 支持 IE11
  • 新 devtools 中的路由和 Vuex 集成
  • 對 Vetur 中模板類型推導的進一步改進

目前,Vue 3 和 v3-targeting 項目的文檔網站寨蹋、GitHub 分支和 npm dist 標簽將保持 next-denoted 狀態(tài)松蒜。這意味著使用npm install vue命令仍會安裝 Vue 2.x,而要安裝 Vue 3 需使用npm install vue@next命令已旧。官方計劃在 2020 年底前將所有的 doc 鏈接秸苗、分支和 dist 標簽都切換為默認 3.0。

同時运褪,團隊已開始啟動 2.7 的開發(fā)工作計劃惊楼,這將是 2.x 的最后一個次要版本。2.7 將向后移植來自 v3 的兼容改進吐句,并會提示有關 v3 中已刪除/更改的 API 使用情況的警告胁后。團隊表示計劃在 2021 年第一季度開發(fā) 2.7店读,發(fā)布后將直接變?yōu)?LTS 版本嗦枢,具有 18 個月的維護周期。

使用

了解有關 Vue 3.0 的更多信息屯断,訪問新文檔網站文虏。如果是 Vue 2.x 用戶,訪問遷移指南殖演。

詳情查看: https://github.com/vuejs/vue-next/releases/tag/v3.0.0

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末氧秘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子趴久,更是在濱河造成了極大的恐慌丸相,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件彼棍,死亡現(xiàn)場離奇詭異灭忠,居然都是意外死亡膳算,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門弛作,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涕蜂,“玉大人,你說我怎么就攤上這事映琳』叮” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵萨西,是天一觀的道長有鹿。 經常有香客問我,道長谎脯,這世上最難降的妖魔是什么印颤? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮穿肄,結果婚禮上年局,老公的妹妹穿的比我還像新娘。我一直安慰自己咸产,他們只是感情好矢否,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著脑溢,像睡著了一般僵朗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屑彻,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天验庙,我揣著相機與錄音,去河邊找鬼社牲。 笑死粪薛,一個胖子當著我的面吹牛,可吹牛的內容都是我干的搏恤。 我是一名探鬼主播违寿,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼熟空!你這毒婦竟也來了藤巢?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤息罗,失蹤者是張志新(化名)和其女友劉穎掂咒,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡绍刮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年糜工,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片录淡。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡捌木,死狀恐怖,靈堂內的尸體忽然破棺而出嫉戚,到底是詐尸還是另有隱情刨裆,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布彬檀,位于F島的核電站帆啃,受9級特大地震影響,放射性物質發(fā)生泄漏窍帝。R本人自食惡果不足惜努潘,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望坤学。 院中可真熱鬧疯坤,春花似錦、人聲如沸深浮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽飞苇。三九已至菌瘫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間布卡,已是汗流浹背雨让。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留忿等,地道東北人栖忠。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像这弧,于是被迫代替她去往敵國和親娃闲。 傳聞我的和親對象是個殘疾皇子虚汛,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345