請務必閱讀文末的 可能需要採取的措施 部分,來確認你是否需要在預設版本切換之前做相應改動以避免發生異常。
這篇文章開放授權,在註明原文地址,內容不做修改的前提下可以隨意轉載。
從函式庫到框架
在最開始的時候,Vue 只是一個執行時間函式庫。但這些年來,它已經逐步發展成一個包含許多子項目的框架:
核心庫,也就是vue npm 套件
隨著核心庫發布新的大版本,框架的所有其他部分也需要一起同步更新。我們還需要為 Vue 2 用戶提供一個升級方案。對於 Vue 這樣一個社區驅動的團隊來說,這是一個巨大的工程。在 Vue 3 的核心庫完成的時候,框架的其他部分要不是還在 beta 狀態,就是還沒開始適配 Vue 3。當時我們的決定是先發布核心庫,這樣早期用戶可以先用起來,庫和上層框架的開發者也可以先適配起來,而我們則繼續更新框架的其餘部分。
在這個過程中,我們依然將 Vue 2 保留為文件和 npm 安裝時的預設版本。這是因為我們知道對於大部分使用者來說,在 Vue 3 的其餘部分完善以前,Vue 2 仍然提供了更一致且完整的體驗。
嶄新的Vue「軟發布」 的過程比預期要長,但這個時刻終於到了:我們很高興地宣布,Vue 3 將在2022 年2 月7 日成為新的預設版本。
除了 Vue 核心庫以外,我們也幾乎改進了框架的每個面向。
版本切換細節
以下是我們所說的「新的預設版本」的具體細節。此外,請務必閱讀文末的 可能需要採取的措施 部分,來確認你是否需要在預設版本切換之前做相應改動以避免發生異常。
npm 發布標籤
所有的文件和官方網站將預設切換到 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
請注意,新的 http://vuejs.org 將是完全重寫的版本,而不是目前部署在 v3.vuejs.org 的版本。
這些網站目前的Vue 2 版本將會被移轉到新位址(版本前綴表示庫的各自版本,而非Vue 核心庫的版本):
- http://vuejs.org -> http://v2.vuejs.org (旧的 v2 网址将自动重定向到新地址上) - 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.orgGitHub 倉庫
在寫這篇文章時,倉庫相關的變更已經生效了。
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 频道下的,在版本切换后,将移至稳定频道。
目前的稳定频道仍然可用。它将被迁移到遗留频道。
可能需要采取的措施
未指定版本的 CDN 链接
如果你通过 CDN 链接使用 Vue 2 而没有指定版本,请确保通过 @2 来指定一个版本范围:
- <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,你也应该始终在生产环境指定一个版本范围,以避免意外地加载到未来的大版本。
npm latest 标签
如果你使用 `latest` 标签或 `*` 来从 npm 安装 Vue 或其他官方库,请更新为明确使用兼容 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" } }
原文地址:https://zhuanlan.zhihu.com/p/460055155