编程

尤雨溪:Vue 3 将成为新的默认版本

1046 2022-01-22 19:44:51

1 月 20 日,Vue 作者尤雨溪在 GitHub 上发布最新公告,表示“Vue 3 将在 2022 年 2 月 7 日成为新的默认版本!”

此前,尤雨溪于 2018 年宣布重写 Vue,并在 2020 年 9 月 19 日将全新开发的 Vue 3 版本呈现到开发者眼前。在《》中,当提及重写 Vue 原因时,尤雨溪回应道,“重写的主要原因一个是类型系统,一个是内部逻辑分层。Vue 2 项目先基于 JavaScript,中期加入了 Flow 做类型检查,导致类型覆盖不完整。Flow 本身破坏性更新频繁,工具链支持也不理想,所以决定转为用 TypeScript 重写。Vue 2 的内部逻辑分层不够清晰,对于长期维护是一个负担,这也是一个不重写就很难彻底改善的问题。”

如今 Vue 3 经过一年多的快速迭代即将成为最新的默认版本,无疑也让开发者更为聚焦。在本次公告中,尤雨溪也特别提醒“务必阅读可能需要采取的措施部分,来确认你是否需要在默认版本切换之前做相应改动以避免发生异常。”

以下为公告全文(https://gist.github.com/yyx990803/bf9a625eeff8b471bf0701afb8e3fe75#potential-required-actions):

从库到框架

在最开始的时候,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 的极速构建工具链