angular 5.0版本更新内容

构建优化

5.0版本默认采用CLI构建和打包。构建优化器是包含在CLI里面的一个工具,经过对你的应用程序更加语义化的理解可使得你的打包程序(bundle)更小。
构建优化器有两个主要工做。
第一,咱们能够将应用程序的一部分标记为纯应用(pure),改进了现有工具提供的摇树优化,删除了应用中其它不须要的部分。
第二,从你的应用程序在运行时删除装饰符代码(decorators),装饰(decorators)是由编译器使用的,而在运行时并不须要能够被删除。这些工做减小了生成的JavaScript bundles的大小,并增长了你的用户应用程序的启动速度

服务端状态转换和DOM支持

有了这个支持,可让应用程序在服务器端和客户端版之间共享状态更容易。
Angular Universal是一个帮助开发者实现SSR的开源项目,经过在服务端渲染
Angular应用程序,而后在客户端引导启动程序并生成HTML,由此更好的支持那些对javascript不太友好的化境来提升应用程序性能。
5.0版本中,Angular开发团队添加了ServerTransferStateModule(与之对应的BrowserTransferStateModule),这个模块容许你在服务端生成模块信息并传输到客户端,不须要在客户端重复建立。这一点在经过HTTP获取数据并展现时很是有用。经过服务端状态转移,客户端不须要在发送第二个HTTP数据请求,状态转移的API文档将在将来几周内发布。
此处另外一个改变是AngularUniversal团队添加了Domino渲染工具,Domino的加入意味着咱们在服务器端上下文中将能够支持更多的DOM操做,改进了对第三方JS和组件库的支持

编译器改进

改进了Angular编译器来支持增量编译,从新构建变得更快,特别是对生产环境的构建和AOT编译,加强的装饰器能够经过更精细化的去除空格来减少产生的包.
改进后的AOT编译的性能大幅度,提高能够节省约95%的构建时间,40s能够提高至2s完成一次构建。
添加Preserve Whitespace 经过编译器,模板开发中的制表符、换行符、空格等能够原样的保留下来,并提供选项能够自选是否使用Preserve Whitespace来保留这些东西,能够在局部设置:组件里面设置 perserveWhitespace属性, 也能够在tsconfig.json中全局设置

加强的装饰符支持

装饰符下降了在使用useValue、useFactory、data对lambda表达式的要求,开发者也可使用一个lamdba表示来代替一个已定义的命名函数,也就意味着你能够不事先在*.d.ts中声明而直接执行代码

管道

添加了新的号码,日期和货币管道,增长了跨浏览器的标准化实现,消除国际化在不一样环境中的差别。
在5.0中管道可使用咱们本身的实现,能够在任何地方实现本地化的支持和配置。

4和5管道差别对比
https://docs.google.com/spreadsheets/d/12iygt_cakNP1VO7MV9g4lq9NsxVWG4tSfc98HpHb0k/edit#gid=0
javascript

StaticInjector取代ReflectiveInjector依赖注入器

为了更多的减小polyfills,5.0中使用了StaticInjector注入器来替换原有的ReflectiveInjector注入器,这种注入器再也不里来与ReflectPolyfill,能够大幅减小应用程序体积
在4.x中,依赖注入器一共有两种,即Injector的抽象类子类:
1._NullInjector (该类的实例用于表示空的注入器)
2.ReflectiveInjector (表示一个依赖注入容器,用于实例化对象和解析依赖)

以前提供依赖注入方式:
ReflectiveInjector.resolveAndCreate(providers);

5.0中方式:
Injector.create(providers);复制代码

Zone执行速度的提高

5中默认提供的zones已经优化过,速度大幅提高,而且在应用程序中绕过zonee区域更加关于应用程序的性能。
绕过zone引导启动应用程序的方式:


exportAs多命名支持

  5.0中提供了组件/指令的多命名支持,在对用户不修改代码状况下进行组件的迁移操做等很是有用,将一个组件导出多个名字,可让组件已一个新名字来使用而达到不破坏现有代码的目的。

HttpClient

  在4.3中HttpClient模块被封装在@angular/common中,新的HttpClient被封装在@angular/common/http中,更新Http模块后,须要使用HttpClientModule替换原有HttpModule,并在使用http服务时,能够去掉map(res=>res.json())的调用,新模块中已经再也不须要这么写了

CLI v1.5

  Angular CLI v1.5版本中已经添加了对5.0版本的支持,后期将会把v5.0.0做为CLI的默认版本。这个版本中已经默认开启了构建优化,因此开发者能够直接感觉到更小的js打包优化带来的收益。同时也更新了.tsconfig将更严格的遵循TypeScript标准,

Angular Forms adds updateOn Blur / Submit

  可使用blur/submit来进行事件更新,而不用每一个input都写一个事件了。

RxJS 5.5

  支持V5.2+ 5.5在bundle上更加优化了

New Router Lifecycle Events

  GuardsCheckStart
  ChildActivationStart
  ActivationStart
  GuardsCheckEnd
  ResolveStart
  ResolveEnd
  ActivationEnd
  ChildActivationEnd


其它版本:java

相关文章
相关标签/搜索