Vue 作者尤雨溪日前发文对 Vue 的 2022 进行回顾并展望了一下项目 2023 年的发展。

Vue作者尤雨溪发文展望2023,回顾2022!-LMLPHP

以下是尤雨溪原文内容(翻译):

回顾 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 3和Vuetify 3均在 2022 年 11 月达到稳定状态,NativeScript for Vue 3最近推出了测试版。此外,我们想对已经支持 Vue 3 很长一段时间的其他伟大项目大声疾呼:Quasar 、 NaiveUI 、 Ionic Vue、PrimeVue、InkLine、ElementPlus等。

尽管 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>宏中的外部导入类型。

与此同时,我们将:

  • 进一步评估 Suspense 和 Reactivity Transform 的准备情况。

  • 花时间评估未完成的用户提交的 RFC 和功能请求。

  • 发布我们打算在 3.4 及更高版本中实现的功能的 RFC,例如 SSR lazy hydration。

期待本月晚些时候的更多细节。

另一件需要注意的事情是,在可预见的未来没有重大突破性变化的计划。认识到用户在 v2 到 v3 过渡期间面临的挑战,我们希望 Vue 有一个更好的长期升级故事。

Vapor 模式

Vapor Mode 是我们一直在试验的另一种编译策略,其灵感来自Solid。给定相同的 Vue SFC,与当前基于虚拟 DOM 的输出相比,Vapor Mode 将其编译成性能更高、使用更少内存且需要更少运行时支持代码的 JavaScript 输出。

不过Vapor Mode仍处于早期阶段,但这里有一些高层次的要点:

  • Vapor 模式适用于主要关注性能的用例。它是选择加入的,不会影响现有的代码库。

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

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

  • 为了获得最佳性能,Vapor 模式将仅支持 Vue 功能的一个子集。特别是,Vapor Mode 组件将仅支持 Composition API 和<script setup>. 但是,这个受支持的子集在 Vapor 和非 Vapor 组件之间的工作方式完全相同。

随着我们在今年晚些时候取得更多进展,我们将分享更多细节。

08-13 20:00