谷歌发布了广受欢迎的 Angular JavaScript 框架的 4.0 版本,该版本致力于缩小生成代码的体积,以及保持框架的简化发布计划。
因为 Angular 改为使用语义版本控制,所以4.0 版本的发布并不像2.0 版本那么重大。 4.0 版本仅仅意味着有开发人员需要注意的突破性变化。所幸这些变化影响并不大,不需要重新学习整个框架。Angular 开发组成员 Rob Wormald 表示,“大多数开发人员应该只需要更新自己的依赖并进行重新构建。”
Angular 跳过了版本3 ,直接发布了版本4,以便与已经采用了3.X 版本号的Angular router 版本保持同步。
4.0 版本有很多新功能,其中大部分都是很小的功能改动。 最大的改进之一就是 Angular 的 Ahead-Of-Time(AOT)编译器生成代码的方式。 Angular 开发组成员 Tobias Bosch 在设计文档中提道,一个源代码仅有245 字节的示例模板被编译为32.5 倍大的7,951 字节的TypeScript 代码。 虽然使用AOT 编译器对于Angular 性能有积极的影响,但传送到浏览器的带宽负荷很大。 在他的原型中,Bosch 能够将编译的TypeScript 代码降低到1,833 字节(比原始代码大7.5 倍,但小于原先编译器结果的25%)。 在 4.0 版本的公告中,Google 提道,开发人员应该注意一个重大改进:
我们已经对 AOT 生成的代码进行了改进。在大多数情况下,这些改进会使生成的代码大小减少约 60%。 模板越复杂,改进越明显。
在候选发布期间,据许多开发人员反馈,迁移到版本 4 使发布环境 js 包 (production budles) 减少了几百 KB。
在 Hacker News 网站,开发者写道“从v2 升级到v4 是无感的”,而且Angular 开发者 Cory Rylan 告诉 InfoQ“这是尝试 Angular 的最好时机了,性能改进非常惊人!”
这个版本的 Angular 的 TypeScript 直接升级到 2.1 版本。之前使用的是 1.8 版本的 TypeScript,没有向后兼容性。 其他重要变化是:
- 动画功能单独打包(package)
- Angular Universal(服务器端渲染项目)与 Angular 同步发布(现在由 Angular 团队维护)
- 模板的 Source Map 功能
- 优化 *ngIf 和 *ngFor 指令
随着此次发布,Angular 团队已经履行了他们每六个月发布一次的承诺。 下一个主要版本(至 5.0)将于 2017 年 10 月的某个时间发布。完整的发布时间表可在GitHub 上找到。
查看英文原文: Angular 4.0 Released with a Focus on Shrinking App Size
感谢冬雨对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论