今天,我们自豪地宣布Vue.js3.0&34;One的正式发布。该框架的这个新的主要版本提供了改进的性能、更小的包大小、更好的类型脚本集成、用于处理大规模用例的新API,并且为框架的长期未来迭代奠定了坚实的基础。
3.0版本代表了两年多的开发努力,包括30多个RFC,2600多个提交,99个贡献者发出的628个拉请求,以及核心repo之外的大量开发和文档工作。我们要向接受这一挑战的团队成员、拉动请求的贡献者、资金支持的赞助商和支持者,以及更广泛的社区参与我们的设计讨论并为预发布版本提供反馈,表示最深切的感谢。VUE是一个为社区创建并由社区支持的独立项目,如果没有您的始终如一的支持,VUE 3.0是不可能的。
VUE从一开始就有一个简单的使命:成为一个任何人都能很快学会的平易近人的框架。随着我们用户基础的增长,框架的范围也在扩大,以适应不断增长的需求。随着时间的推移,它演变成了我们所说的渐进式框架:一个可以逐渐学习和采用的框架,同时在用户处理越来越苛刻的场景时提供持续的支持。
今天,Vue在全球拥有130多万用户*,我们看到Vue被用于各种各样的场景,从传统服务器呈现的页面上零散的交互性,到包含数百个组件的成熟的单页面应用程序。VUE 3进一步提高了这种灵活性。
VUE 3.0核心仍然可以通过一个简单的<;script>;标记来使用,但是它的内部已经被从头开始重新编写成一个解耦的模块集合。新的体系结构提供了更好的可维护性,并允许最终用户通过树摇动将运行时大小削减多达一半。
核心运行时提供了一流的API,用于创建针对不同渲染目标(例如,本地移动、WebGL或终端)的自定义渲染器。默认的DOM渲染器是使用相同的API构建的。
@VUE/REACTIVATION模块导出可直接访问VUE的反应性系统的功能,并且可以作为独立的软件包使用。它可以与其他模板解决方案(例如,it-html)配对,甚至可以在非UI场景中使用。
基于2.x对象的API在Vue 3中基本保持不变。但是,3.0还引入了组合API-一组新的API,旨在解决大规模应用程序中Vue使用的痛点。合成API构建在反应性API之上,与基于2.x对象的API相比,它支持类似于反应挂钩的逻辑合成和重用、更灵活的代码组织模式和更可靠的类型推断。
合成API也可以通过@VUE/Compostion-API插件与VUE 2.x一起使用,并且已经有了同时适用于VUE 2和3的合成API实用程序库(例如,Vueuse、VUE-Composable)。
与Vue 2相比,VUE 3在捆绑包大小(摇动树时最多减少41%)、初始渲染(最多快55%)、更新(最多更快133%)和内存使用量(最多减少120%)方面表现出显著的性能改进。
在Vue 3中,我们采用了编译器通知的虚拟DOM方法:模板编译器执行积极的优化并生成呈现函数代码,该代码承载静态内容,为绑定类型留下运行时提示,最重要的是,平坦化模板内的动态节点以降低运行时遍历的成本。因此,用户可以两全其美:从模板获得编译器优化的性能,或者在用例需要时通过手动呈现函数直接控制。
VUE 3的代码库是用TypeScript编写的,带有自动生成、测试和捆绑的类型定义,因此它们始终是最新的。组合API可以很好地与类型推理配合使用。Vetur,我们的官方VSCode扩展,现在支持模板表达式和道具类型检查,利用Vue 3改进的内部类型。哦,如果你喜欢的话,Vue 3的打字完全支持多伦多证券交易所(TSX)。
这些特性在Vue 3.0中已经实现并可用,但仅用于收集反馈。在RFC合并之前,它们将保持试验性。
我们还实现了一个目前没有文档记录的<;suspense>;组件,它允许在初始呈现或分支切换时等待嵌套的异步依赖项(异步组件或带有异步设置()的组件)。我们正在与Nuxt.js团队一起测试和迭代这一特性(Nuxt3正在开发中),很可能会在3.1中巩固它。
Vue 3.0的发布标志着该框架已基本就绪。虽然一些框架的子项目可能还需要进一步的工作才能达到稳定的状态(特别是在DevTools中集成路由器和Vuex),但我们相信它适合今天开始新的、新的Vue3项目。我们还鼓励库作者开始升级您的项目以支持Vue 3。
由于时间限制,我们已经推迟了迁移版本(具有v2兼容行为的v3版本+迁移警告)和IE11版本,并计划在2020年第四季度重点关注它们。因此,计划迁移现有v2应用程序或需要IE11支持的用户此时应该意识到这些限制。
目前,Vue 3和V3目标项目的文档网站、GitHub分支机构和NPM dist标签仍将处于下一个指定状态。这意味着NPM install VUE仍将安装VUE 2.x,NPM install VUE@Next将安装VUE 3。我们计划在2020年前将所有文档链接、分支和dist标签切换到默认版本3.0。
同时,我们已经开始了2.7的计划,这将是2.x发布线的最后一个计划的小版本。2.7将从v3向后移植兼容的改进,并对v3中删除/更改的API的使用发出警告,以帮助进行潜在的迁移。我们计划在2021年第一季度开发2.7,发布后将直接成为LTS,维护寿命为18个月。
要了解有关Vue 3.0的更多信息,请查看我们新的文档网站。如果您是现有的Vue 2.x用户,请直接转到迁移指南。