发布时间

2022 年回顾

作者

Vue 社区新年快乐!随着 2023 年的到来,我们想借此机会回顾 2022 年发生的事情,并讨论 2023 年的展望。


2022 年回顾

2022 年 2 月,我们 将 Vue 的默认版本切换到 3.x。此次切换标志着框架所有官方部分都已准备好使用 v3,包括对文档进行了重大改进,以提供有关最新最佳实践的指导。

我们仍然处于生态系统向 Vue 3 过渡的时期。因此,在切换之后,我们更加专注于通过投资工具来改善 Vue 的开发者体验。我们的团队成员一直积极参与 Vite 的开发,并且通过发布 Volar 1.0,我们对 Vue 的 IDE 和 TypeScript 支持进行了重大改进。

在 2022 年,我们看到 Vue 3 的 NPM 使用量增长了 **近 200%**。在社区方面,Vue 3 生态系统现在已经成熟,拥有许多出色的解决方案来帮助提高您的生产力。Nuxt 3Vuetify 3 都在 2022 年 11 月达到了稳定状态,而 用于 Vue 3 的 NativeScript 最近发布了测试版。此外,我们想向其他已经支持 Vue 3 一段时间的优秀项目表示感谢:QuasarNaiveUIIonic VuePrimeVueInkLineElementPlus 以及 更多

尽管 Vue 3 现在是默认版本,但我们理解许多用户由于迁移成本而不得不继续使用 Vue 2。为了确保 Vue 2 用户能够从框架的进步中受益,我们决定将 Vue 2 的源代码迁移到 TypeScript,并在 Vue 2.7 中移植了一些最重要的 Vue 3 功能。我们还确保 Vite、Vue Devtools 和 Volar 都同时支持 Vue 2 和 Vue 3。

2023 年展望

更小、更频繁的次要版本发布

随着最后一个 Vue 2 次要版本 (2.7) 的发布,我们预计将在 2023 年全力以赴地为 Vue 3 核心发布功能。我们有一份很长的功能列表,我们很高兴能够着手进行!

我们想要改进的一件事是我们的发布节奏。Vue 遵循 semver,这意味着我们应该只在次要版本中发布功能。在过去,我们采取了“大型次要版本”的方法,将许多功能集中在一起,发布大型、不频繁的次要版本。这导致了一些低复杂度的功能在开发其他高复杂度功能时被阻塞。在 2023 年,我们希望发布更小、更频繁的次要版本,以便能够更快地发布更多功能。

这也意味着我们将调整 3.3 中的内容。最初,我们计划在 3.3 中将 Suspense 和 Reactivity Transform 从实验状态中毕业。但是,我们认为两者都需要进一步的 RFC 讨论,并且不应该阻止其他更直接的功能落地。现在,3.3 的目标是落地那些明确有益且不需要 RFC 讨论的已提议/计划的功能 - 例如,在 <script setup> 宏中支持外部导入的类型。

与之同时,我们将

  1. 进一步评估 Suspense 和 Reactivity Transform 的准备情况。
  2. 花时间评估未决的用户提交的 RFC 和功能请求。
  3. 发布我们打算在 3.4 及以后版本中落地的功能的 RFC,例如 SSR 延迟水合。

预计本月晚些时候会有更多详细信息。

需要注意的另一件事是,在可预见的未来没有计划进行重大变更。考虑到用户在 v2 到 v3 过渡期间遇到的挑战,我们希望为 Vue 的未来发展提供更好的长期升级方案。

Vapor 模式

Vapor 模式是一种我们一直在尝试的替代编译策略,灵感来自 Solid。对于相同的 Vue SFC,Vapor 模式将其编译成 JavaScript 输出,与当前基于虚拟 DOM 的输出相比,该输出具有更高的性能、更少的内存使用量,并且需要更少的运行时支持代码。它仍处于早期阶段,但以下是一些高级要点

  • Vapor 模式旨在用于性能是主要关注点的用例。它是可选的,不会影响现有代码库。

  • 至少,您将能够将 Vapor 组件子树嵌入到任何现有的 Vue 3 应用程序中。理想情况下,我们希望在组件级别实现粒度可选,这意味着可以在同一个应用程序中自由混合 Vapor 和非 Vapor 组件。

  • 使用仅包含 Vapor 组件的应用程序,您可以从捆绑包中删除虚拟 DOM 运行时,从而显着减少基线运行时大小。

  • 为了实现最佳性能,Vapor 模式将只支持 Vue 功能的一个子集。特别是,Vapor 模式组件将只支持 Composition API 和 <script setup>。但是,此支持的子集在 Vapor 和非 Vapor 组件之间将完全相同。

我们将在今年晚些时候取得更多进展时分享更多详细信息。

会议

2023 年已经安排了许多 Vue 线下会议

  • Vue.js Amsterdam - 2 月 9-10 日,荷兰阿姆斯特丹
  • Vue.js Live - 5 月 12 日和 15 日,英国伦敦
  • VueConf US - 5 月 24-26 日,美国新奥尔良
  • VueFes Japan - 10 月 28 日,日本东京(信息待定)

我(尤雨溪)计划亲自参加所有这些会议。经过将近 3 年的缺席,我迫不及待地想再次见到社区 - 请来打个招呼!

Vue 2 结束支持还有 1 年

提醒一下,今天距离 Vue 2 支持结束 **正好一年**。我们创建了一个页面来解释这意味着什么,并概述了那些希望在 EOL 日期之后继续使用 Vue 2 的用户的选项:有关 Vue 2 EOL 和扩展支持的详细信息