谷歌發(fā)布了廣受歡迎的Angular JavaScript框架的4.0版本,該版本致力于縮小生成代碼的體積,以及保持框架的簡化發(fā)布計劃。
因?yàn)锳ngular改為使用語義版本控制,所以4.0版本的發(fā)布并不像2.0版本那么重大。 4.0版本僅僅意味著有開發(fā)人員需要注意的突破性變化。所幸這些變化影響并不大,不需要重新學(xué)習(xí)整個框架。Angular開發(fā)組成員Rob Wormald表示,“大多數(shù)開發(fā)人員應(yīng)該只需要更新自己的依賴并進(jìn)行重新構(gòu)建。”
Angular跳過了版本3,直接發(fā)布了版本4,以便與已經(jīng)采用了3.X版本號的Angular router版本保持同步。
4.0版本有很多新功能,其中大部分都是很小的功能改動。 最大的改進(jìn)之一就是Angular的Ahead-Of-Time(AOT)編譯器生成代碼的方式。 Angular 開發(fā)組成員Tobias Bosch在設(shè)計文檔中提道,一個源代碼僅有245字節(jié)的示例模板被編譯為32.5倍大的7,951字節(jié)的TypeScript代碼。 雖然使用AOT編譯器對于Angular性能有積極的影響,但傳送到瀏覽器的帶寬負(fù)荷很大。 在他的原型中,Bosch能夠?qū)⒕幾g的TypeScript代碼降低到1,833字節(jié)(比原始代碼大7.5倍,但小于原先編譯器結(jié)果的25%)。 在4.0版本的公告中,Google提道,開發(fā)人員應(yīng)該注意一個重大改進(jìn):
我們已經(jīng)對AOT生成的代碼進(jìn)行了改進(jìn)。在大多數(shù)情況下,這些改進(jìn)會使生成的代碼大小減少約60%。 模板越復(fù)雜,改進(jìn)越明顯。
在候選發(fā)布期間,據(jù)許多開發(fā)人員反饋,遷移到版本4使發(fā)布環(huán)境js包(production budles)減少了幾百KB。
在Hacker News網(wǎng)站,開發(fā)者寫道“從v2升級到v4是無感的”,而且Angular開發(fā)者Cory Rylan告訴InfoQ“這是嘗試Angular的最好時機(jī)了,性能改進(jìn)非常驚人!”
這個版本的Angular的TypeScript直接升級到2.1版本。之前使用的是1.8版本的TypeScript,沒有向后兼容性。 其他重要變化是:
動畫功能單獨(dú)打包(package)
Angular Universal(服務(wù)器端渲染項(xiàng)目)與Angular同步發(fā)布(現(xiàn)在由Angular團(tuán)隊(duì)維護(hù))
模板的Source Map功能
優(yōu)化 *ngIf和*ngFor指令
隨著此次發(fā)布,Angular團(tuán)隊(duì)已經(jīng)履行了他們每六個月發(fā)布一次的承諾。 下一個主要版本(至5.0)將于2017年10月的某個時間發(fā)布。完整的發(fā)布時間表可在GitHub上找到。
查看英文原文:Angular 4.0 Released with a Focus on Shrinking App Size