近三年最大改版Angular 9发布,开始默认使用Ivy编译器

前端网页程序开发框架Angular最新发布9.0,这个版本全面更新了开发框架、Angular Material以及CLI,Angular 9最大的亮点便是开始默认使用Ivy编译器和Runtime,并且改进测试组件的方法。官方表示,这个版本是过去三年来,最大的一次更新。

Angular开发团队发展已久的Ivy编译器,在Angular 8.0发布时成为正式版本,在Angular 9变成了默认选项。Angular开发者使用TypeScript以及HTML来编写组件,但这些HTML最终都不会在用户的浏览器中执行,Angular的编译器会将这些HTML转换成JavaScript,当这些组件需要出现在页面上时,由JavaScript创建适当的DOM。

而Ivy是开发团队全新开发的编译器,使用渐增编译技术,能提升构建的速度,且能缩小捆绑包的大小,也让开发者可以更快进行测试,调试也更容易。开发团队提到,开发Ivy编译器的目的,是要精简不通过树摇处理的Angular部分,并使每个Angular组件产生更少的程序代码,经过这些改进,小型与大型应用程序,都能最大程度地缩减容量。

而那些没有使用太多Angular功能的小型应用程序,则可以使用树摇功能,获得更大的帮助。而中等大小的应用程序,因为原本从树摇功能就获益较少,但是又因为没有使用足够多的组件,因此难以真正因为Ivy编译器缩减太多应用程序的容量。

官方也改进了Ivy的TestBed提升其性能,过去TestBed会在每次测试执行时,无论组件是否有被修改,都会重新编译所有组件,而现在除非开发者手动覆盖某个组件,否则TestBed不会在测试的时候重新编译组件,因此能够避免绝大多数测试时的编译工作,使得框架核心测试速度加快40%,用户的应用程序测试速度应该也会加速40%到50%。

由于Ivy的新架构,编译器速度获得大幅的提升,官方以应用程序的TypeScript编译成本来衡量编译器性能,Ivy编译官方自家的文件应用程序angular.io,效率提升将近40%。而这代表AOT构建将能够更快,开发人员现在可以在开发模式构建使用AOT,增加开发效率。

Angular 9也加入了YouTube和Google地图新组件,开发者现在可以在应用程序中内置渲染YouTube播放器,而新的Google地图组件,则让开发者可以像是使用其他Angular组件一样,简单地渲染Google地图,显示标记并且与其交互,开发者不需要学习使用Google地图API的方法。

Angular在2019年JavaScript 2019大调查的表现并不好,调查显示其发展进入停滞状态,从2016年来,虽然使用人数持续增长,但是差评也越来越多,在去年使用人数停止增长,而差评人气却没有因此减少,趋势预测Angular在2020年将会开始衰退,而是否能利用这次大改版力挽狂澜,还值得观察下去。