前端训练营:1v1私教,终身辅导计划,帮你拿到满意的
offer
。 已帮助数百位同学拿到了中大厂offer
。欢迎来撩~~~~~~~~
Hello,大家好,我是 Sunday。
Vue
官方团队在 2023 年的最后两天发布了 Vue 3.4
的版本命名为 “Slam Dunk”(灌篮高手)
。Vue3 自 2020 年发布,到目前为止已经有 三年半 的时间(想不到吧,Vue3 已经发布了这么久了)。期间经历了很多关键节点的变化,从最初的 被人诟病 到现在的 “全面认可” 中间到底经历了什么?
那么在 23 年末的今天,就让咱们回顾一下整个 Vue3 的生命历程,看看从 海贼王 到 灌篮高手 的变化吧~~
Vue 3 于 2020年9月18日 正式发布,命名 海贼王。 Vue 官方团队雄心壮志,宣布了很多全新的特性,比如:
Composition API
。 但是: 简陋的setup
函数特性让很多开发者对Composition API
的易用性产生了 “怀疑”。所以 海贼王 在一开始的推广中 并不顺利~
今天我们很自豪地宣布 Vue.js 3.0“海贼王”正式发布。该框架的这个新的主要版本提供了改进的性能、更小的包大小、更好的 TypeScript 集成、用于处理大规模用例的新 API,并为该框架的长期未来迭代奠定了坚实的基础。
3.0 版本代表了超过 2 年的开发工作,包括 30 多个 RFC、2,600 多个提交、来自 99 个贡献者的 628 个拉取请求,以及核心存储库之外的大量开发和文档工作。我们要对接受这一挑战的团队成员、拉取请求的贡献者、提供财务支持的赞助商和支持者以及参与我们的设计讨论并为预发布提供反馈的更广泛的社区表示最深切的感谢。 -发布版本。 Vue 是一个为社区创建并由社区维持的独立项目,如果没有您的持续支持,Vue 3.0 就不可能实现。
Vue 从一开始就有一个简单的使命:成为一个任何人都可以快速学习的平易近人的框架。随着我们的用户群的增长,该框架的范围也随之扩大,以适应不断增长的需求。随着时间的推移,它演变成我们所说的“渐进式框架”:一个可以逐步学习和采用的框架,同时在用户处理越来越多的要求较高的场景时提供持续的支持。
如今,Vue 在全球拥有超过 130 万用户*,我们看到 Vue 被用于各种各样的场景,从传统服务器渲染页面上的少量交互,到具有数百个组件的成熟单页面应用程序。 Vue 3 进一步增强了这种灵活性。
Vue 3.0 核心仍然可以通过简单的 标签使用,但其内部结构已从头开始重写为解耦模块的集合。新的架构提供了更好的可维护性,并允许最终用户通过树摇动将运行时大小减少一半。
这些模块还公开了较低级别的 API,可解锁许多高级用例:
编译器支持自定义 AST 转换以进行构建时自定义(例如构建时 i18n)
核心运行时提供一流的 API,用于创建针对不同渲染目标(例如本机移动、WebGL 或终端)的自定义渲染器。默认 DOM 渲染器是使用相同的 API 构建的。
@vue/reactivity
模块导出提供对 Vue 反应性系统的直接访问的函数,并且可以用作独立包。它可以与其他模板解决方案(例如 lit-html)配合使用,甚至可以在非 UI 场景中使用。
2.x 基于对象的 API 在 Vue 3 中基本保持不变。然而,3.0 还引入了 Composition API
——一组新的 API,旨在解决大规模应用程序中 Vue 使用的痛点。 Composition API 构建在反应性 API 之上,支持类似于 React hooks 的逻辑组合和重用、更灵活的代码组织模式以及比 2.x 基于对象的 API 更可靠的类型推断。
Composition API 还可以通过 @vue/composition-api 插件与 Vue 2.x 一起使用,并且已经有适用于 Vue 2 和 3 的 Composition API 实用程序库(例如 vueuse、vue-composable)。
与 Vue 2 相比,Vue 3 在包大小(通过 Tree-Shaking 减少最多 41%)、初始渲染(快 55%)、更新(快 133%)和内存使用方面表现出了显着的性能改进(最多减少 54%)。
在 Vue 3 中,我们采用了“编译器通知的虚拟 DOM”方法:模板编译器执行积极的优化并生成渲染函数代码,以提升静态内容,为绑定类型留下运行时提示,最重要的是,展平内部的动态节点减少运行时遍历成本的模板。因此,用户可以两全其美:从模板获得编译器优化的性能,或者在用例需要时通过手动渲染函数进行直接控制。
Vue 3 的代码库是用 TypeScript 编写的,具有自动生成、测试和捆绑的类型定义,因此它们始终是最新的。组合 API 非常适合类型推断。 Vetur 是我们的官方 VSCode 扩展,现在利用 Vue 3 改进的内部类型支持模板表达式和 props 类型检查。哦,如果您愿意的话,Vue 3 的输入完全支持 TSX。
我们为单文件组件(SFC,又名 .vue 文件)提出了两个新功能:
:在 SFC 内使用 Composition API 的语法糖
:SFC 内状态驱动的 CSS 变量这些功能已在 Vue 3.0 中实现并可用,但仅出于收集反馈的目的而提供。在 RFC 合并之前,它们将保持实验状态。
我们还实现了一个当前未记录的
组件,它允许在初始渲染或分支切换时等待嵌套的异步依赖项(异步组件或具有异步 setup() 的组件)。我们正在与 Nuxt.js 团队一起测试和迭代此功能(Nuxt 3 即将推出),并且可能会在 3.1 中对其进行巩固。
Vue 3.0 的发布标志着该框架已基本准备就绪。虽然某些框架子项目可能仍需要进一步工作才能达到稳定状态(特别是开发工具中的路由器和 Vuex 集成),但我们相信现在适合使用 Vue 3 启动新的绿色项目。我们还鼓励库作者开始升级您的项目以支持 Vue 3。
由于时间限制,我们推迟了迁移构建(具有 v2 兼容行为的 v3 构建 + 迁移警告)和 IE11 构建,并计划在 2020 年第四季度重点关注它们。因此,计划迁移现有 v2 应用程序或需要IE11 支持此时应该意识到这些限制。
发布后的短期内,我们将重点关注:
目前,Vue 3 和 v3 目标项目的文档网站、GitHub 分支和 npm dist 标签将保持在 next-driven 状态。这意味着 npm install vue 仍将安装 Vue 2.x,而 npm install vue@next
将安装 Vue 3。我们计划在 2021 年初将所有文档链接、分支和 dist 标签切换为默认 3.0。
与此同时,我们已经开始规划 2.7,这将是 2.x 版本系列的最后一个计划的次要版本。 2.7 将从 v3 向后移植兼容改进,并对使用 v3 中删除/更改的 API 发出警告,以帮助潜在的迁移。我们计划在 2021 年第一季度开发 2.7,发布后将直接成为 LTS,维护周期为 18 个月。
Vue 3.2 提供了 五种全新的改进。 3.2 版本也成了 Vue3 之后稳定期最长的版本。在这个版本中
的全新语法糖占据了主流,同时也使得 Vue3 正式成为 最受欢迎 的 Vue 版本
单文件组件(SFC,又名 .vue 文件)的两个新功能已脱离实验状态,现在被认为是稳定的:
是一个编译时语法糖,可以极大地改善在 SFC 内使用 Composition API 时的人体工程学。
v-bind 在 SFC
标记中启用组件状态驱动的动态 CSS 值。
以下是结合使用这两个新功能的示例组件:
在 SFC Playground 中尝试一下,或者阅读它们各自的文档: