前言
自從Angular 4.3版以後,新的網路傳輸HttpClient在Angular中被引入。
而官方在Angular第五版開始,將舊的 HttpModule被標示為不建議使用,因此在此為各位介紹為什麼官方要採用HttpClient,而捨棄舊的Http
新功能
我們來看看第五版HttpClient
的新功能。
自動轉換為從JSON到一個對象
當我們從網路接收數據時,我們在Api當中會使用JSON格式來進行回傳。 為了能夠在我們的程式當中處理這些JSON數據,我們需要根據我們得到的JSON數據創建一個對象。
讓我們看一個使用舊Angular http基本範例:
1 | getData() { |
上述的Code主要做了三件事情,我們把它們整理條列一下:
獲取JSONData(這是Response類型)。
使用JSON.parse()將Data轉換為Json格式進行解析
將結果記錄到主控台中。
而使用新的HttpClient 我們的Code只需要這樣:
1 | getData() { |
另外我們也可以使用泛型透過衍生型類別來訂定資料:
1 | getData() { |
Header的簡化語法
通常在做網路傳輸的時候,為了在請求中設置自定義Header(如Auth),我們需要實體化HttpHeaders()對象並將(‘header’, ‘value’)傳遞給函數。
1 | const headers = new HttpHeaders().set('Content-Type', 'text'); |
在這個例子中,我們將Content-TypeHeader設置為text ( application/json是默認值)。
1 | const headers = new HttpHeaders().set('Content-Type', 'text').append('Authorization', 'CustomToken'); |
如何從Http更改為新的HttpClient:
第一步是確保安裝了適當的Angular版本,即4.3和更高版本。
在項目的Module
中用HttpClientModule
替換HttpModule
。 新的HttpClientModule
應該從@angular/common/http
導入。
1 | // Old import { HttpModule } from '@angular/http'; |
1 |
|
結論
基本上,語法沒有很大的變化。 HttpClient保留了舊的http: http.get() , http.post()等相同的方法名稱。
因此大家可以愉快地升級,享受簡潔的語法吧!
有任何家教、案子 或技術相關問題 請都歡迎聯繫我