新版本的特性:
更輕量化、更快
在這個新版本上,我們履行了我們的承諾,我們做到了讓Angular的程序變的更輕量化,更快。但是我們還沒有完全的優(yōu)化完,在接下來的日子中,你會看到我們將著重于這方面的改進。
視圖引擎
我們在后臺改變了生成的AOT代碼樣式。這個變化將減少大多數(shù)情況下生成的60%的組件代碼。它可以使你自己的模板更個性化,復用率更高。
在我們新版本還沒發(fā)布的時候,我們聽到很多開發(fā)者認為如果他們將angular更新到4.0.0,angular4.0.0將會使他們的生產(chǎn)束將降低。為了更好的了解我們對視圖引擎做的改進,歡迎閱讀我們的開發(fā)文檔。
動畫包
我們在@angular/core中新增了很多我們自己的動畫效果包。這就意味著,你用或不用,動畫包就在那里,不離不棄。
這個變化同樣會讓你更容易的找到文檔,更好的實現(xiàn)自動完成。你也可以從@angular/platform-browser/animations中導入瀏覽器動畫模型,以此來為你的主要模塊實現(xiàn)你需要的動畫效果。
新功能
*ngIf和*ngFor的改進
我們的模塊綁定語法現(xiàn)在支持一些有用的改進。你現(xiàn)在可以使用if/else這類風格的語法,并且局部變量支持類似下面的使用。
Loading...
Angular Universal
Universal,這個項目允許開發(fā)者在服務器上運行Angular,這是angular的所改即所見特性。這是angular團隊通過的第一個來自于使用者,社區(qū)推動發(fā)展的一個項目。這個版本包括過去幾個月內(nèi)我們開發(fā)團隊及社區(qū)開發(fā)者的,共同努力的結(jié)果。Angular的平臺服務器部分包含了Universal的專業(yè)代碼。
如果想了解更多的Augular的Universal,請查閱Angular/平臺服務器中的一個新方法,renderModuleFactory,或者查看Rob Wormald的演示庫。更多的文檔和代碼即將發(fā)布。
TypeScript 2.1和2.2的兼容性
我們讓Angular支持了最近的幾個TypeScript的版本。這將會提升ngc的速度,此外,你的程序還將得到更好的類型檢查。
模塊的源映射
當你的模塊中的某個因素會造成錯誤時,我們會生成一個源映射,給出模塊中產(chǎn)生錯誤的上下文位置。
包的變化
Flat ES Modules (Flat ESM / FESM)
我們現(xiàn)在扁平化我們組件的版本(我們在EcmaScript模塊通過格式化代碼來控制版本,具體參見我們的示例文件)。這種行為將會幫助 你進行tree-shaking,幫助減少你的生產(chǎn)術的大小,加快編譯,翻譯,以及在某些情況下瀏覽器的加載。
Experimental ES2015 Builds
我們現(xiàn)在也選擇使用ES2015將我們的包扁平化,格式化。這種選擇是帶有實驗性質(zhì)和冒險進入的。開發(fā)商已經(jīng)通報了,把這些包匯總將會增加7%的大小。嘗試一下這些新的包,配置編譯環(huán)境來解決包中的‘ec2015’屬性。json超出了這些模塊的屬性。
Experimental Closure Compatibility
現(xiàn)在我們所有的代碼都有閉包注釋,使其盡可能的利用先進的閉包優(yōu)化,從而導致減小的束大小和更好的tree shaking代碼優(yōu)化。
更新4.0.0
更新到4.0.0是和你更新Angular支持包到最新版本一樣簡單,如果你想要動畫的新特性,請檢查兩次。這將試用與大多數(shù)情況。
Linux/Mac系統(tǒng)下更新:
npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest typescript@latest --save
window下更新:
npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest --save