Angular4.0.0正式發佈,附新特性及升級指南

本文首發地址:Angular4.0.0正式發佈,附新特性及升級指南git

做者|孫薇github

編輯|尾尾typescript


經歷了6個RC版本以後,Angular項目組終於發佈了新版,即正式版 Angular 4.0.0。新版的 Angular 有哪些值得關注的點,究竟帶來了哪些新特性?如何升級?且看本文一一道來。npm

值得關注的點

速度更快、體積更小服務器

這個版本不只速度更快、體積更小,還對內置指令NgFor和NgIf以及模板的source map等功能進行了優化。app

向後兼容async

該版本向後兼容大多數應用中的2.x.x系列。ide

強力優化代碼優化

新版本還優化了View引擎,改進後AoT生成的代碼將減小約60%,並且模板越複雜,所優化的代碼量就越大。動畫

動畫部分單獨打包

Angular將動畫部分從@angular/core拆分出來,單獨打包。將核心模塊精簡後,在不使用動畫時產品中將不包含冗餘的動畫代碼。若是須要動畫,可以使用相關功能自行導入。

新的特性

此次的正式版本帶來的新特性以下:

優化了內置指令nglf和ngFor

新版本中的模板對於綁定語法作了些修改,將支持開發者使用if/else類型的語法,並支持在展開Observable(可觀察對象)等代碼中分配局部變量。

<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官方集成。這也是集成以後Universal的首次發佈,包含了過去數月中Universal團隊的工做成果。目前大多功能已集成到@angular/platform-server模塊中,移步看Github上的相關案例:

或查看Rob Wormald的 Demo Repository:

robwormald/ng-universal-demo

TypeScript 2.1與2.2的兼容

Angular的TypeScript目前已更新到2.2版本,一方面提升了ngc的速度,同時在應用中進行type檢查時,體驗也更優秀。當前版本向下兼容。

模板的源映射

目前若是模板出現錯誤,咱們會生成源映射,以瞭解原始模板中的來龍去脈及背景環境。

如何升級到 4.0.0 版本

升級到最新版本很是簡單,不過要確認一點:是否須要動畫。大多狀況下可用下面的命令來解決問題:

在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

在Windows上:

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 serve或者npm start命令,就完成了。

特殊狀況下,若是開發者須要依賴動畫Animations,可在root NgModule中經過@angular/platform-browser/animations導入新的BrowserAnimationsModule模塊,不然可能會遇到錯誤。不建議使用@angular/core,請經過import { trigger, state, style, transition, animate } from '@angular/animations'來導入。

爲了方便你們升級,官方更貼心地推出了 Angular Update Guide (Angular Update Guide )功能,點擊可快速選擇適合本身的升級方案。

爲何跳過Angular 3?

根據Angular團隊首席開發Igor Minar的說法:隨着Angular 2的發佈,Angular團隊引入了語義化版本控制規範,即:將語義化版本用三組數字來表示,按照major.minor.patch的順序排列,如2.3.1。

Patch版本每週發佈,一般只修復問題,不加入新的功能。Minor版本每個月發佈,加入一些新的功能,但相對舊版原本說沒有太大更改。Major版本每半年發佈一次,加入一些新功能,並可能帶來一些重大更改。

以前最新的Angular router版本號是3.3.0,而其它模塊的版本號是2.2.0,因爲版本號不一樣步,團隊計劃將其同步,直接採用4.0.0做爲新版的版本號。

相關文章
相關標籤/搜索