經(jīng)歷了6個(gè)RC版本之后伤提,今天Angular發(fā)布了4.0.0版本,這次發(fā)布是主版本的更新(遵循采用語(yǔ)義版本)懒浮,并且在大多數(shù)情況下飘弧,Angular4.0版本是向后兼容Angular2.0的。
那么砚著,這次Angular4版本主要更新了什么呢次伶?
體積更小,速度更快Angular應(yīng)用程序變得更小更快稽穆,并且在未來(lái)幾個(gè)月將進(jìn)一步改進(jìn)框架冠王。
更好的模板引擎改進(jìn)了AoT,將生成的代碼的大小減少約60%舌镶。如果模板越復(fù)雜柱彻,那么優(yōu)化的代碼也會(huì)越多。(譯者注:當(dāng)然餐胀,這對(duì)于用戶(hù)來(lái)說(shuō)哟楷,完全是透明的,public api 沒(méi)有發(fā)生變化否灾。)
動(dòng)畫(huà)模塊改進(jìn)將動(dòng)畫(huà)從@angular/core
中分離開(kāi)來(lái)卖擅,區(qū)分核心模塊與動(dòng)畫(huà)模塊,精簡(jiǎn)核心模塊體積墨技。
再來(lái)看看Angular4給我們帶來(lái)了哪些新的特性惩阶。
增強(qiáng)*ngIf
和 *ngFor
語(yǔ)法模板綁定語(yǔ)法進(jìn)行了幾個(gè)有用的更改。現(xiàn)在可以使用if / else
樣式語(yǔ)法扣汪,并分配局部變量断楷,例如在展開(kāi)observable時(shí)。
<div *ngIf="userList | async as users; else loading">
<user-profile *ngFor="let user of users; count as count" [user]="user">
</user-profile>
<div>{{count}} total users</div>
</div>
<ng-template #loading>Loading...</ng-template>
服務(wù)端渲染(Angular Universal)原先的Angular Universal是社區(qū)人員維護(hù)的崭别,后被angular官方采用冬筒。目前在4.0.0版本中,將大部分的代碼集成在@angular/platform-server模塊中茅主。為大家?guī)?lái)更好的服務(wù)端渲染體驗(yàn)舞痰,更簡(jiǎn)單Api調(diào)用。請(qǐng)參見(jiàn)基于Angular4的服務(wù)端渲染demo: https://github.com/z827101859/angular-universal 暗膜。之后匀奏,官方會(huì)為大家?guī)?lái)更好更全面的例子鞭衩。
TypeScript 2.1 和 2.2 的兼容Angular已更新為更新版本的TypeScript学搜,提高了ngc的速度娃善,并且有更好的類(lèi)型檢查機(jī)制。
模板的Source Maps當(dāng)模板中的某些內(nèi)容發(fā)生錯(cuò)誤時(shí)瑞佩,Angular會(huì)生成源映射聚磺,從而為原始模板提供有意義的上下文。