angular5 的新特性
简单了解:
1、构建优化器。5.0 版本默认采用 CLI 编译和打包。构建优化器是 CLI 中的一个工具,通过对应用程序的语义化理解使得程序打包变小。一个方面是通过用户主动标记,删除应用中没用到的程序;另一方面则是运行时删除只在编译用到的装饰器信息。
2、服务端状态转换和 DOM 支持。增加了 ServerTransferStateModule 和 BrowserTransferStateModule 模块,可以在服务端生成模块信息并传输到客户端,不需要客户端重复创建,可以更好地支持那些对js支持不太友好的环境来提高应用程序的性能。
3、编译器改进。Angular 编译器新支持了增量编译,重新构建变得更快。支持设置 preserveWhitespace 对制表符、换行符、空格是否进行编译后原样保留。增强的装饰符,现在支持 Lambda 和对象字面量 useValue、useFactory 和 data 装饰器中的表达式降级;可以不使用命名函数,而改用 Lambda 函数。
4、建立了新的号码、日期和货币管道,增加了跨浏览器的标准化实现,消除国际化在不同环境的差异。支持自己实现管道。
5、注入器修改。为了更多的减少 polyfills,使用了StaticInjector 注入器来替换原有的 ReflectiveInjector 注入器,这种注入器不再里来与 ReflectPolyfill,可以大幅减少应用程序体积。
6、zone 执行速度的提升。支持绕过 zone 引导启动应用程序。语句:
platformBrowserDynamic().bootstrapModule(AppModule, {ngZone: 'noop'}).then( ref => {} );
7、增加了 exportAs 组件属性,将一个组件导出多个名字。
@Component({ selector: 'a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab]', exportAs: 'matButton, matAnchor' ... }
8、HttpClient 模块更新,新的 HttpClientModule 模块在 @angular/common/http 中,使用 http 服务时,可以去掉 map(res=>res.json()) 的调用。
9、Angular CLI v1.5,已经添加对 5.0 的支持并默认开启构建优化,打更小的 js 包。
10、Angular表单添加 updateOn Blur/Submit,这样可以根据 blur 或 submit 来运行验证和更新值的逻辑了,不必再单纯依赖 input 事件。 例:
<form [ngFormOptions]="{updateOn:'submit'}">
例:
new FormGroup(value, {updateOn: 'blur'})); new FormControl(value, {updateOn: 'blur', asyncValidators: [myValidator]})
11、Rxjs 5.5,支持 V5.2+ 5.5 在 bundle 上更加优化。
12、增加了新的路由器生命周期事件监听。 GuardsCheckStart、ChildActivationStart、ActivationStart、GuardsCheckEnd ResolveStart、ResolveEnd、ActivationEnd、ChildActivationEnd