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

相關文章
相關標籤/搜索