Angular4.0.0正式版發布


來源於angular4.0.0發布時的公告,譯者:niithub

原文發布時間:Thursday, March 23, 2017

翻譯時間:2017年3月24日

angular4.0.0正式版現在可以使用了。這是自我們宣布angular改版后,首次發布的專業版本。它向下兼容,支持所有使用了angular2.x.x版本的應用程序。

我們很高興和大家分享這個版本,它包括最近的3個月中我們做的功能上的主要改進。我們努力讓開發者們能夠很容易的接受angular4.0.0。

新版本的特性

  • 更輕量化、更快

    在這個新版本上,我們履行了我們的承諾,我們做到了讓Angular的程序變的更輕量化,更快。但是我們還沒有完全的優化完,在接下來的日子中,你會看到我們將着重於這方面的改進。

  • 視圖引擎

    我們在后台改變了生成的AOT代碼樣式。這個變化將減少大多數情況下生成的60%的組件代碼。它可以使你自己的模板更個性化,復用率更高。

    在我們新版本還沒發布的時候,我們聽到很多開發者認為如果他們將angular更新到4.0.0,angular4.0.0將會使他們的生產束將降低。為了更好的了解我們對視圖引擎做的改進,歡迎閱讀我們的開發文檔。

  • 動畫包

    我們在@angular/core中新增了很多我們自己的動畫效果包。這就意味着,你用或不用,動畫包就在那里,不離不棄。

    這個變化同樣會讓你更容易的找到文檔,更好的實現自動完成。你也可以從@angular/platform-browser/animations中導入瀏覽器動畫模型,以此來為你的主要模塊實現你需要的動畫效果。

新功能

  • *ngIf*ngFor的改進

    我們的模塊綁定語法現在支持一些有用的改進。你現在可以使用if/else這類風格的語法,並且局部變量支持類似下面的使用。

    <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> 
  • Angular Universal

    Universal,這個項目允許開發者在服務器上運行Angular,這是angular的所改即所見特性。這是angular團隊通過的第一個來自於使用者,社區推動發展的一個項目。這個版本包括過去幾個月內我們開發團隊及社區開發者的,共同努力的結果。Angular的平台服務器部分包含了Universal的專業代碼。

    如果想了解更多的Augular的Universal,請查閱Angular/平台服務器中的一個新方法,renderModuleFactory,或者查看Rob Wormald的演示庫。更多的文檔和代碼即將發布。

  • TypeScript 2.1和2.2的兼容性

    我們讓Angular支持了最近的幾個TypeScript的版本。這將會提升ngc的速度,此外,你的程序還將得到更好的類型檢查。

  • 模塊的源映射

    當你的模塊中的某個因素會造成錯誤時,我們會生成一個源映射,給出模塊中產生錯誤的上下文位置。

包的變化

  • Flat ES Modules (Flat ESM / FESM)

    我們現在扁平化我們組件的版本(我們在EcmaScript模塊通過格式化代碼來控制版本,具體參見我們的示例文件)。這種行為將會幫助 你進行tree-shaking,幫助減少你的生產術的大小,加快編譯,翻譯,以及在某些情況下瀏覽器的加載。

  • Experimental ES2015 Builds

    我們現在也選擇使用ES2015將我們的包扁平化,格式化。這種選擇是帶有實驗性質和冒險進入的。開發商已經通報了,把這些包匯總將會增加7%的大小。嘗試一下這些新的包,配置編譯環境來解決包中的‘ec2015’屬性。json超出了這些模塊的屬性。

  • Experimental Closure Compatibility

    現在我們所有的代碼都有閉包注釋,使其盡可能的利用先進的閉包優化,從而導致減小的束大小和更好的tree shaking代碼優化。

更新4.0.0

更新到4.0.0是和你更新Angular支持包到最新版本一樣簡單,如果你想要動畫的新特性,請檢查兩次。這將試用與大多數情況。

  • Linux/Mac系統下更新:

    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

接着你就可以正常使用了,可以運行任意的ng服務或者ng命令,一切就都就緒了。

如果你依賴動畫,可以在你的root NgModule下從@angular/platform-browser/animations模塊中導入新的BrowserAnimationsModule類。

如果不需要動畫,除了動畫存在小問題,你的代碼可以直接編譯和運行。從Angular/core下引入包是過時的一種做法,正常的做法應該是從@angular/animations導入新的包,導入{ trigger, state, style, transition, animate }等。

如果你想看到更多改變你的應用程序需要的信息,你可以參考我們正在做的交互式更新指南。

已知問題

angular4的其中一個目標是使angular兼容TypeScript的strictNullChecks設置,使其支持一個更嚴格的子集類型的授權。我們發現在發布候選版時,我們需要做各種工作,來保證angular4在各種使用情況下都可以正常運行,所以為了防止應用程序中途停止運行,我們故意設置4.0版本不支持strictNullChecks。我們會很快解決這個問題的,預計在4.1版本,我們將支持strictNullChecks。(問題編號:15432)。

下一步呢?

和我們發布2.x版本的時間表一樣,我們正在制定未來6個月的版本發布的工作計划。你很快就能看到4.0.0的補丁,並且我們已經在開發4.1版本了。我們將繼續努力讓Angular變的更小和更快,我們還會開發新的功能,比如說@angular/http,@angular/service-worker, and @angular/language-service的正式版本。

你也應該持續關注、更新我們的文檔,一旦CLI穩定發布,我們將提供相應的架包作者的指導。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM