Vue 3 將在 2022 年 2 月 7 日成為新的預設版本
title: Vue 3 將成為新的預設版本 date: 2022-01-20T00:00:00.000Z author: 尤雨溪 gravatar: eca93da2c67aadafe35d477aa8f454b8 twitter: '@youyuxi' hidden: true theme: fancy
劃重點:Vue 3 將在 2022 年 2 月 7 日成為新的預設版本!
請務必閱讀可能需要採取的措施部分,來確認你是否需要在預設版本切換之前做相應改動以避免發生異常。
本文章開放授權,在註明原文地址,內容不做修改的前提下可以隨意轉載。
從庫到框架
在最開始的時候,Vue 僅僅是一個執行時庫。但這些年來,它已經逐步發展成了一個包含許多子專案的框架:
- 核心庫,即
vue
npm 包 - 內容足夠當作一本書的文件
- 構建工具鏈(Vue CLI、Vue Loader 和其他支援包)
- 用於構建單頁應用的路由 Vue Router
- 用於狀態管理的 Vuex
- 用於除錯和分析的瀏覽器開發者工具擴充套件
- 用於支援開發單檔案元件的 VSCode 擴充套件 Vetur
- 用於進行靜態風格/錯誤檢查的 ESLint 外掛
- 用於元件測試的 Vue Test Utils
- 利用 Vue 執行時功能的定製 JSX Babel 外掛
- 用於靜態網站生成的 VuePress
正因為 Vue 是一個社群驅動的專案,才讓這一切成為可能。這些專案中的許多都是由社群成員發起,他們後來成為了 Vue 團隊的成員。其餘的專案最初由我發起,但現在除了核心庫之外,幾乎都完全由團隊維護。
Vue 3 的 “軟釋出”
隨著核心庫釋出新的大版本,框架的所有其他部分也需要一起同步更新。我們還需要為 Vue 2 使用者提供一個升級方案。對於 Vue 這樣一個社群驅動的團隊來說,這是一個巨大的工程。在 Vue 3 的核心庫完成的時候,框架的其他部分要麼還在 beta 狀態,要麼還沒有開始適配 Vue 3。當時我們的決定是先發布核心庫,這樣早期使用者可以先用起來,庫和上層框架的開發者也可以先適配起來,而我們則繼續更新框架的其餘部分。
在這個過程中,我們依然將 Vue 2 保留為文件和 npm 安裝時的預設版本。這是因為我們知道對於大部分使用者來說,在 Vue 3 的其餘部分完善以前,Vue 2 仍然提供了更一致且完整的體驗。
嶄新的 Vue
“軟釋出” 的過程比預期要長,但這個時刻終於到了:我們很高興地宣佈,Vue 3 將在 2022 年 2 月 7 日成為新的預設版本。
除了 Vue 核心庫以外,我們還幾乎改進了框架的每個方面。
- 基於 Vite 的極速構建工具鏈
<script setup>
帶來的開發體驗更絲滑的組合式 API 語法- Volar 提供的單檔案元件 TypeScript IDE 支援
- vue-tsc 提供的針對單檔案元件的命令列型別檢查和生成
- Pinia 提供的更簡潔的狀態管理
- 新的開發者工具擴充套件,同時支援 Vue 2/Vue 3,並且提供一個外掛系統來允許社群庫自行擴充套件開發者工具面板。
我們還徹底重寫了主文件。全新的 vuejs.org (目前處於待發布狀態,中文版的翻譯還在進行中) 將提供最新的框架概述與開發建議、針對不同背景的使用者的靈活的學習路徑,在整個指南與示例中都能夠在選項式 API 和組合式 API 之間進行切換,以及許多新的深入章節。新文件本身的網站效能也非常優秀——我們將在不久後的另一篇博文中詳細探討一下。
版本切換細節
下面是我們所說的“新的預設版本”的具體細節。此外,請閱讀可能需要採取的措施部分,來確認你是否需要在預設版本切換之前做相應改動以避免發生異常。
npm 釋出標籤
-
npm install vue
將預設安裝 Vue 3。 -
所有其他官方 npm 包的
latest
釋出標籤將指向其 Vue 3 的相容版本,包括vue-router
、vuex
、vue-loader
和@vue/test-utils
。
官方文件與站點
所有的文件和官方站點將預設切換到 Vue 3 版本。包括:
- vuejs.org
- router.vuejs.org
- vuex.vuejs.org
- vue-test-utils.vuejs.org (將遷移到 test-utils.vuejs.org)
- template-explorer.vuejs.org
請注意,新的 vuejs.org 將是完全重寫的版本,而不是目前部署在 v3.vuejs.org 的版本。
這些站點當前的 Vue 2 版本將被遷移到新地址 (版本字首表示庫的各自版本,而非 Vue 核心庫的版本):
- vuejs.org -> v2.vuejs.org (舊的 v2 網址將自動重定向到新地址上)
- router.vuejs.org -> v3.router.vuejs.org
- vuex.vuejs.org -> v3.vuex.vuejs.org
- vue-test-utils.vuejs.org -> v1.test-utils.vuejs.org
- template-explorer.vuejs.org -> v2.template-explorer.vuejs.org
GitHub 倉庫
在寫這篇文章時,倉庫相關的變化已經生效了。
vuejs
組織下的所有 GitHub 倉庫將把預設分支切換到 Vue 3 對應的版本。此外,以下倉庫都將被重新命名,以刪除其名稱中的 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
此外,主文件的翻譯倉庫將被移至 vuejs-translations
組織下。
GitHub 會自動處理倉庫的重定向,所以之前的原始碼與 issue 問題的連結應該仍然有效。
開發者工具擴充套件
開發者工具 v6 目前是釋出到 Chrome Web Store 的 beta 頻道下的,在版本切換後,將移至穩定頻道。
目前的穩定頻道仍然可用。它將被遷移到遺留頻道。
可能需要採取的措施 {#potential-required-actions}
使用未指定版本的 CDN 連結
如果你通過 CDN 連結使用 Vue 2 而沒有指定版本,請確保通過 @2
來指定一個版本範圍:
```diff - +
- ```
注意:即使使用 Vue 3,你也應該始終在生產環境指定一個版本範圍,以避免意外地載入到未來的大版本。
npm latest
標籤
如果你使用 latest
標籤或 *
來從 npm 安裝 Vue 或其他官方庫,請更新為明確使用相容 Vue 2 的版本:
diff
{
"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"
}
}
- 技術週刊 2022-05-05:Chrome 將支援 inert 屬性,Web Bundle 提案
- 技術週刊 2022-04-13:Chrome 100、React 18 釋出
- 搞出一個 vue-element-admin 的 Vue3 版本 | 升級全過程記錄
- 阿里媽媽又做了新工具,幫你把 Vue2 程式碼改成 Vue3 的
- 2022-03-29:npm 受供應鏈攻擊,Shadow Realms 支援
- 技術週刊 2022-03-16:React 18 首個 RC 釋出,數週後將釋出正式版
- 技術週刊 2022-03-07: Cascade Layers 已支援,Chrome 100 將到來
- 升級 Vue3 的最後一塊拼圖,快試試這個工具自動升級你的 Element 老專案
- Vue 3 將在 2022 年 2 月 7 日成為新的預設版本
- NAPI-RS v2 釋出
- 技術週刊 2021-12-20:React 18 終進 RC,SharedArrayBuffer 梅開二度
- 技術週刊 2021-12-10:OpenType 1.9 帶來全新的彩色字型規範
- 技術週刊 2021-11-12:Angular 13 發版
- 技術週刊 2021-10-28:WebAssembly 全面開花
- 技術週刊 2021-10-15:Firefox 支援 AVIF
- 技術週刊 2021-09-07:WebGPU 進入 Chrome 初期試用
- 技術週刊 2021-07-16:Chrome 即將推出 HTTPS-First 模式
- 技術週刊 2021-06-08:React 18 和併發 SSR 支援就要來了
- iconfont 支援全新的彩色字型圖示
- 技術週刊 2021-05-27:Node.js 跑在瀏覽器中是什麼樣,WebContainer 揭曉啦