劃重點(diǎn):Vue 3 將在 2022 年 2 月 7 日 成為新的默認(rèn)版本得院!
請(qǐng)務(wù)必閱讀文末的 可能需要采取的措施 部分,來(lái)確認(rèn)你是否需要在默認(rèn)版本切換之前做相應(yīng)改動(dòng)以避免發(fā)生異常。
Markdown 源文件 | 英文原文
從庫(kù)到框架
在最開始的時(shí)候削饵,Vue 僅僅是一個(gè)運(yùn)行時(shí)庫(kù)署浩。但這些年來(lái),它已經(jīng)逐步發(fā)展成了一個(gè)包含許多子項(xiàng)目的框架:
- 核心庫(kù),即
vue
npm 包 - 內(nèi)容足夠當(dāng)作一本書的文檔
- 構(gòu)建工具鏈(Vue CLI约急、Vue Loader 和其他支持包)
- 用于構(gòu)建單頁(yè)應(yīng)用的路由 Vue Router
- 用于狀態(tài)管理的 Vuex
- 用于調(diào)試和分析的瀏覽器開發(fā)者工具擴(kuò)展
- 用于支持開發(fā)單文件組件的 VSCode 擴(kuò)展 Vetur
- 用于進(jìn)行靜態(tài)風(fēng)格/錯(cuò)誤檢查的 ESLint 插件
- 用于組件測(cè)試的 Vue Test Utils
- 利用 Vue 運(yùn)行時(shí)功能的定制 JSX Babel 插件
- 用于靜態(tài)網(wǎng)站生成的 VuePress
正因?yàn)?Vue 是一個(gè)社區(qū)驅(qū)動(dòng)的項(xiàng)目零远,才讓這一切成為可能。這些項(xiàng)目中的許多都是由社區(qū)成員發(fā)起厌蔽,他們后來(lái)成為了 Vue 團(tuán)隊(duì)的成員牵辣。其余的項(xiàng)目最初由我發(fā)起,但現(xiàn)在除了核心庫(kù)之外奴饮,幾乎都完全由團(tuán)隊(duì)維護(hù)纬向。
Vue 3 的 “軟發(fā)布”
隨著核心庫(kù)發(fā)布新的大版本,框架的所有其他部分也需要一起同步更新戴卜。我們還需要為 Vue 2 用戶提供一個(gè)升級(jí)方案逾条。對(duì)于 Vue 這樣一個(gè)社區(qū)驅(qū)動(dòng)的團(tuán)隊(duì)來(lái)說(shuō),這是一個(gè)巨大的工程投剥。在 Vue 3 的核心庫(kù)完成的時(shí)候师脂,框架的其他部分要么還在 beta 狀態(tài),要么還沒(méi)有開始適配 Vue 3江锨。當(dāng)時(shí)我們的決定是先發(fā)布核心庫(kù)危彩,這樣早期用戶可以先用起來(lái),庫(kù)和上層框架的開發(fā)者也可以先適配起來(lái)泳桦,而我們則繼續(xù)更新框架的其余部分汤徽。
在這個(gè)過(guò)程中,我們依然將 Vue 2 保留為文檔和 npm 安裝時(shí)的默認(rèn)版本灸撰。這是因?yàn)槲覀冎缹?duì)于大部分用戶來(lái)說(shuō)谒府,在 Vue 3 的其余部分完善以前,Vue 2 仍然提供了更一致且完整的體驗(yàn)浮毯。
嶄新的 Vue
“軟發(fā)布” 的過(guò)程比預(yù)期要長(zhǎng)完疫,但這個(gè)時(shí)刻終于到了:我們很高興地宣布,Vue 3 將在 **2022 年 2 月 7 日 **成為新的默認(rèn)版本债蓝。
除了 Vue 核心庫(kù)以外壳鹤,我們還幾乎改進(jìn)了框架的每個(gè)方面。
基于 Vite 的極速構(gòu)建工具鏈
<script setup>
帶來(lái)的開發(fā)體驗(yàn)更絲滑的組合式 API 語(yǔ)法Volar 提供的單文件組件 TypeScript IDE 支持
vue-tsc 提供的針對(duì)單文件組件的命令行類型檢查和生成
Pinia 提供的更簡(jiǎn)潔的狀態(tài)管理
-
新的開發(fā)者工具擴(kuò)展饰迹,同時(shí)支持 Vue 2/Vue 3芳誓,并且提供一個(gè)插件系統(tǒng)來(lái)允許社區(qū)庫(kù)自行擴(kuò)展開發(fā)者工具面板。
我們還徹底重寫了主文檔啊鸭。全新的 vuejs.org (目前處于待發(fā)布狀態(tài)锹淌,中文版的翻譯還在進(jìn)行中) 將提供最新的框架概述與開發(fā)建議、針對(duì)不同背景的用戶的靈活的學(xué)習(xí)路徑赠制,在整個(gè)指南與示例中都能夠在選項(xiàng)式 API 和組合式 API 之間進(jìn)行切換赂摆,以及許多新的深入章節(jié)。新文檔本身的網(wǎng)站性能也非常優(yōu)秀——我們將在不久后的另一篇博文中詳細(xì)探討一下。
版本切換細(xì)節(jié)
下面是我們所說(shuō)的“新的默認(rèn)版本”的具體細(xì)節(jié)烟号。此外绊谭,請(qǐng)務(wù)必閱讀文末的 **可能需要采取的措施 **部分,來(lái)確認(rèn)你是否需要在默認(rèn)版本切換之前做相應(yīng)改動(dòng)以避免發(fā)生異常汪拥。
npm 發(fā)布標(biāo)簽
-
npm install vue
將默認(rèn)安裝 Vue 3达传。 - 所有其他官方 npm 包的
latest
發(fā)布標(biāo)簽將指向其 Vue 3 的兼容版本,包括vue-router
喷楣、vuex
趟大、vue-loader
和@vue/test-utils
鹤树。
官方文檔與站點(diǎn)
所有的文檔和官方站點(diǎn)將默認(rèn)切換到 Vue 3 版本铣焊。包括:
- http://vuejs.org
- http://router.vuejs.org
- http://vuex.vuejs.org
- http://vue-test-utils.vuejs.org (將遷移到 http://test-utils.vuejs.org)
- http://template-explorer.vuejs.org
請(qǐng)注意,新的 http://vuejs.org 將是完全重寫的版本罕伯,而不是目前部署在 v3.vuejs.org 的版本曲伊。
這些站點(diǎn)當(dāng)前的 Vue 2 版本將被遷移到新地址 (版本前綴表示庫(kù)的各自版本,而非 Vue 核心庫(kù)的版本):
- http://vuejs.org -> http://v2.vuejs.org (舊的 v2 網(wǎng)址將自動(dòng)重定向到新地址上)
- http://router.vuejs.org -> http://v3.router.vuejs.org
- http://vuex.vuejs.org -> http://v3.vuex.vuejs.org
- http://vue-test-utils.vuejs.org -> http://v1.test-utils.vuejs.org
- http://template-explorer.vuejs.org -> http://v2.template-explorer.vuejs.org
GitHub 倉(cāng)庫(kù)
在寫這篇文章時(shí)追他,倉(cāng)庫(kù)相關(guān)的變化已經(jīng)生效了坟募。
vuejs
組織下的所有 GitHub 倉(cāng)庫(kù)將把默認(rèn)分支切換到 Vue 3 對(duì)應(yīng)的版本。此外邑狸,以下倉(cāng)庫(kù)將被重命名懈糯,以刪除其名稱中的 next
:
- vuejs/vue-next -> vuejs/core
- vuejs/vue-router-next -> vuejs/router
- vuejs/docs-next -> vuejs/docs
- vuejs/vue-test-utils-next -> vuejs/test-utils
- vuejs/jsx-next -> vuejs/babel-plugin-jsx
此外,主文檔的翻譯倉(cāng)庫(kù)將被移至 vuejs-translations 組織下单雾。
GitHub 會(huì)自動(dòng)處理倉(cāng)庫(kù)的重定向赚哗,所以之前的源碼與 issue 問(wèn)題的鏈接應(yīng)該仍然有效。
開發(fā)者工具擴(kuò)展
開發(fā)者工具 v6 目前是發(fā)布到 Chrome Web Store 的 beta 頻道下的硅堆,在版本切換后屿储,將移至穩(wěn)定頻道。
目前的穩(wěn)定頻道仍然可用渐逃。它將被遷移到遺留頻道够掠。
可能需要采取的措施
未指定版本的 CDN 鏈接
如果你通過(guò) CDN 鏈接使用 Vue 2 而沒(méi)有指定版本,請(qǐng)確保通過(guò) @2
來(lái)指定一個(gè)版本范圍:
- <script src="https://unpkg.com/vue"></script>
+ <script src="https://unpkg.com/vue@2"></script>
- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>
+ <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.min.js"></script>
注意:即使使用 Vue 3茄菊,你也應(yīng)該始終在生產(chǎn)環(huán)境指定一個(gè)版本范圍疯潭,以避免意外地加載到未來(lái)的大版本。
npm latest 標(biāo)簽
如果你使用 latest
標(biāo)簽或 *
來(lái)從 npm 安裝 Vue 或其他官方庫(kù)面殖,請(qǐng)更新為明確使用兼容 Vue 2 的版本:
{
"dependencies": {
- "vue": "latest",
+ "vue": "^2.6.14",
- "vue-router": "latest",
+ "vue-router": "^3.5.3",
- "vuex": "latest"
+ "vuex": "^3.6.2"
},
"devDependencies": {
- "vue-loader": "latest",
+ "vue-loader": "^15.9.8",
- "@vue/test-utils": "latest"
+ "@vue/test-utils": "^1.3.0"
}
}