尤雨溪:Vue 2022 回顾及 2023 展望
尤雨溪youtobe演进:Vue.js Nation 2023
新年快乐,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 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 懒惰水合(SSR lazy hydration)。
预计本月晚些时候会有更多细节。
另一件需要注意的事情是,在可预见的未来没有重大突破性变化的计划。认识到用户在 v2 到 v3 过渡期间面临的挑战,我们希望 Vue 有一个更好的长期升级故事。
Vapor模式
Vapor Mode 是我们一直在试验的另一种编译策略,其灵感来自Solid。给定相同的 Vue SFC,与当前基于虚拟 DOM 的输出相比,Vapor Mode 将其编译成性能更高、使用更少内存且需要更少运行时支持代码的 JavaScript 输出。它仍处于早期阶段,但这里有一些高层次的要点:
- Vapor 模式适用于主要关注性能的用例。它是可选的,不会影响现有的代码库。
- 至少,您将能够将 Vapor 组件子树嵌入到任何现有的 Vue 3 应用程序中。理想情况下,我们希望在组件级别实现精细的选择加入,这意味着在同一个应用程序中自由混合 Vapor 和非 Vapor 组件。
- 只使用 Vapor 组件构建应用程序允许您从包中删除虚拟 DOM 运行时,极大地减少基线运行时大小。
- 为了获得最佳性能,Vapor 模式将只支持 Vue 功能的一个子集。特别是,Vapor Mode 组件将仅支持 Composition API 和
<script setup>
。但是,这个受支持的子集在 Vapor 和非 Vapor 组件之间的工作方式完全相同。
转载自:https://juejin.cn/post/7209829103082995769