作 者:蘭澤軍 著
定 價:79
出 版 社:人民郵電出版社
出版日期:2021年05月01日
頁 數:276
裝 幀:平裝
ISBN:9787115561084
1.讀者無需有前端開發基礎本書假設用戶之前不了解Angular框架,或者假設用戶一直是從事Java開發的,從來沒有接觸過前端框架。本書就是專門為這樣的讀者準備的,它從一開始外圍知識著手,每一章節,每一個案例以及每一段代碼都經過精心的設計和挑選,方便用戶能快速的掌握 Angular 的實踐技能。2.知識點全面本書所有的案例基於Angular開發,也是目前Angular的近期新版本。無論書中的講解和示例代碼的安排,都是基於依賴服務的優選版本進行,大量的應用案例甚至填補了官方文檔的空白。3.章等
●第1篇準備篇
第1章Angular概述2
1.1為什麼要用Angular2
1.1.1速度和性能2
1.1.2跨平臺運行2
1.1.3可伸縮性的設計2
1.1.4穩定性3
1.1.5谷歌和微軟公司的支持3
1.1.6強大的生態繫統3
1.2Angular的版本3
1.3Angular的核心概念4
1.3.1組件4
1.3.2模板和數據綁定4
1.3.3服務4
1.3.4依賴注入4
1.3.5指令5
1.3.6管道5
1.3.7模塊5
1.4Angular的運行5
1.5小結5
第2章Angular開發基礎6
2.1了解Web開發基礎6
2.1.1客戶端和服務器通信6
2.1.2什麼是HTML7
2.1.3什麼是DOM8
2.1.4HTML特性與DOM屬性8
2.1.5CSS基礎知識9
2.1.6CSS布局實戰11
2.2掌握Node.js和npm基礎14
2.3TypeScript基礎知識15
2.4Web組件知識15
2.4.1什麼是MVVM模式15
2.4.2MVVM模式的優點15
2.5選擇適合的開發工具15
2.6如何學習Angular16
2.7小結16
第3章Node.js和npm基礎17
3.1配置Node.js運行環境17
3.2如何使用node命令18
3.3Node.js模塊知識18
3.3.1exports對像18
3.3.2require()函數19
3.3.3module對像19
3.4npm基礎20
3.4.1使用npm命令安裝模塊20
3.4.2更新模塊21
3.4.3卸載模塊21
3.5開啟一個Node.js項目21
3.5.1初始化Node.js項目21
3.5.2安裝Express框架22
3.5.3啟動Node.js項目23
3.6搭建Node.js項目開發環境23
3.6.1安裝IDE23
3.6.2Node.js項目結構24
3.6.3node_modules文件夾的作用24
3.6.4package.json文件25
3.6.5識別模塊的版本號25
3.6.6package-lock.json文件的作用26
3.6.7調試Node.js項目26
3.7小結27
第4章TypeScript基礎知識28
4.1什麼是TypeScript28
4.2快速上手TypeScript29
4.2.1安裝TypeScript29
4.2.2 轉譯TypeScript29
4.2.3[示例tsc-ex100]開啟第一個TypeScript項目30
4.3TypeScript數據類型31
4.3.1TypeScript類型注解31
4.3.2TypeScript基礎數據類型32
4.3.3TypeScript中的類型轉換35
4.3.4TypeScript類型斷言36
4.3.5TypeScript類型保護37
4.3.6TypeScript的聯合類型38
4.3.7TypeScript的類型別名38
4.3.8TypeScript的交叉類型38
4.4TypeScript的函數與參數39
4.4.1箭頭函數39
4.4.2TypeScript函數類型39
4.4.3函數中的可選參數40
4.4.4函數中的默認參數40
4.5TypeScript數組41
4.5.1TypeScript數組類型41
4.5.2使用TypeScript數組的查找和檢索方法41
4.6TypeScript接口42
4.7TypeScript類43
4.7.1類的構造函數43
4.7.2類的方法和屬性44
4.7.3類的繼承45
4.7.4類的存取器方法46
4.8TypeScript映射類型46
4.8.1Partial 映射類型46
4.8.2Readonly 映射類型47
4.8.3Exclude映射類型47
4.9TypeScript的相等性判斷48
4.9.1非嚴格相等比較48
4.9.2嚴格相等比較 48
4.10TypeScript析構表達式48
4.10.1對像的析構表達式49
4.10.2數組的析構表達式49
4.11TypeScript模塊50
4.11.1導出聲明50
4.11.2導出語句50
4.11.3默認導出51
4.11.4導入內容51
4.12小結52
第2篇入門篇
第5章快速開啟Angular項目54
5.1初識Angular CLI54
5.1.1安裝Angular CLI54
5.1.2運行Angular CLI55
5.1.3卸載和更新Angular CLI56
5.1.4[示例cli-ex100]快速開啟一個Angular項目56
5.2 搭建Angular開發環境58
5.2.1擴展IDE的功能58
5.2.2[示例cli-ex200]在運行時編輯項目59
5.2.3編譯時的錯誤提醒60
5.2.4運行時的錯誤提醒61
5.3Angular CLI常用命令和選項61
5.3.1初始化命令和選項61
5.3.2創建命令和選項62
5.4Angular項目結構概述63
5.5如何啟動Angular項目64
5.6Angular項目的啟動過程65
5.7小結65
第6章Angular組件詳解66
6.1什麼是Angular組件66
6.2組件模板的種類67
6.2.1內聯模板67
6.2.2外部模板68
6.2.3矢量圖模板68
6.3組件樣式68
6.4組件類的構成69
6.4.1組件類裝飾器69
6.4.2組件類基礎70
6.5組件類與模板的數據綁定方式70
6.5.1什麼是單向數據綁定70
6.5.2使用插值顯示屬性的值71
6.5.3[示例components-ex100]使用插值顯示屬性的值71
6.5.4屬性綁定方式72
6.5.5事件綁定80
6.5.6[示例components-ex600]事件綁定81
6.5.7雙向數據綁定82
6.5.8[示例components-ex700]雙向數據綁定82
6.6組件的生命周期84
6.7組件的交互85
6.7.1從創建子組件開始85
6.7.2[示例components-ex800]父組件拆分為子組件85
6.7.3父子組件的交互87
6.8小結90
第7章Angular模板91
7.1Angular模板語言基礎91
7.2模板表達式和模板語句的基本用法91
7.2.1模板表達式的基本用法92
7.2.2模板表達式中的運算符93
7.2.3模板語句的基本用法94
7.3模板引用94
7.3.1模板引用變量94
7.3.2@ViewChild()裝飾器95
7.3.3[示例template-ex100]使用@ViewChild()裝飾器引素95
7.3.4@ViewChildren()裝飾器97
7.3.5[示例template-ex200]使用@ViewChildren()裝飾器引用多素98
7.4Angular數據綁定知識總結98
7.4.1單向屬性綁定98
7.4.2單向事件綁定99
7.4.3雙向數據綁定100
7.4.4[示例template-ex300]雙向數據綁定100
7.5小結102
第8章Angular指令應用103
8.1Angular結構型指令103
8.1.1NgIf指令103
8.1.2[示例directive-ex100]使用NgIf指令顯示素103
8.1.3NgFor指令105
8.1.4[示例directive-ex200]使用NgFor指令顯示列表105
8.1.5NgSwitch指令106
8.1.6[示例directive-ex300]使用NgSwitch指令顯示星期幾107
8.1.7ng-containe素108
8.2Angular屬性型指令109
8.2.1NgClass指令109
8.2.2NgStyle指令109
8.2.3NgContent指令110
8.2.4[示例directive-ex400]使用NgContent指令創建可重用添加按鈕組件112
8.2.5在@ContentChildren()裝飾器中使用NgContent指令113
8.2.6[示例directive-ex500]使用@ContentChildren()裝飾器查詢子組件列表114
8.3創建指令116
8.3.1在指令中訪問DOM屬性117
8.3.2[示例directive-ex600]使用自定義指令更改按鈕大小117
8.3.3在指令中監聽事件119
8.3.4[示例directive-ex700]在指令中監聽事件119
8.3.5在指令中使用@HostBinding()裝飾器綁定DOM屬性121
8.3.6[示例directive-ex800]在指令中使用@HostBinding()裝飾器綁定DOM屬性121
8.3.7在指令中使用@HostListener()裝飾器監聽DOM事件122
8.3.8[示例directive-ex900]監聽單擊事件並實現當點擊時增加計數122
8.4小結124
第9章Angular模塊125
9.1什麼是Angular模塊125
9.1.1Angular根模塊125
9.1.2Angular特性模塊127
9.2常用內置模塊127
9.3Angular模塊業務分類128
9.3.1理解核心模塊128
9.3.2防止重復導入核心模塊129
9.3.3理解共享模塊129
9.4如何正確地分割模塊130
9.5小結130
第3篇應用篇
第10章Angular路由功能132
10.1Angular路由簡介132
10.1.1創建Web應用程序的路由模塊132
10.1.2理解路由服務133
10.2簡單的路由配置133
10.2.1基本路由配置134
10.2.2路由器出口134
10.2.3使用路由器鏈接136
10.2.4路由鏈接的激活狀態137
10.2.5[示例route-ex100]使用路由器鏈接和路由鏈接的激活狀態137
10.3路由器狀態139
10.3.1路由器狀態和激活路由狀態139
10.3.2ActivatedRoute對像及其快照對像141
10.3.3[示例route-ex200]ActivatedRoute對像及其快照對像應用示例142
10.4路由器觸發的事件143
10.5在路由中傳遞參數144
10.5.1傳遞配置參數144
10.5.2傳遞路徑參數145
10.5.3傳遞查詢參數146
10.5.4[示例route-ex300]使用路由傳遞參數148
10.6路由守衛152
10.6.1路由守衛的基本概念152
10.6.2配置路由守衛153
10.6.3CanActivate守衛應用154
10.6.4CanActivateChild守衛應用155
10.6.5CanDeactivate守衛應用155
10.6.6Resolve守衛應用156
10.6.7CanLoad守衛應用156
10.7路由器的延遲加載157
10.7.1延遲加載157
10.7.2實施延遲加載157
10.7.3[示例route-ex400]實現路由器的延遲加載功能159
10.8小結160
第11章Angular服務和依賴注入161
11.1為什麼需要服務161
11.2什麼是依賴注入162
11.3創建可注入的服務類162
11.4選擇注入器163
11.5配置提供商164
11.5.1提供商的類型 164
11.5.2配置方法164
11.6在類中注入服務167
11.6.1注入依賴類實例167
11.6.2注入可選的依賴類實例168
11.6.3使用@Inject()裝飾器指定注入實例168
11.6.4注入Injector類對像實例168
11.6.5[示例injection-ex100]Angular配置和使用依賴注入169
11.7創建依賴174
11.8小結174
第12章RxJS響應式編程基礎175
12.1響應式編程的基本概念175
12.1.1異步數據流175
12.1.2可觀察對像176
12.2RxJS的概念177
12.3RxJS創建器179
12.3.1of創建器179
12.3.2from創建器179
12.3.3range創建器180
12.3.4fromEvent創建器180
12.3.5timer創建器181
12.3.6interval創建器181
12.3.7defer創建器182
12.3.8隨機數創建器182
12.4RxJS基本操作符183
12.4.1map操作符183
12.4.2tap操作符184
12.4.3filter操作符184
12.4.4mapTo操作符185
12.4.5retry操作符185
12.5RxJS合並操作符186
12.5.1concat操作符186
12.5.2merge操作符186
12.5.3zip操作符187
12.6RxJS高階映射操作符187
12.6.1concatMap操作符188
12.6.2mergeMap操作符189
12.6.3switchMap操作符190
12.6.4exhaustMap操作符191
12.7RxJS可觀察對像的冷熱模式193
12.7.1冷模式的可觀察對像193
12.7.2熱模式的可觀察對像194
12.8小結194
第13章Angular表單195
13.1什麼是Angular表單195
13.1.1模板驅動表單195
13.1.2響應式表單196
13.2表單模型196
13.2.1表單模型的容器196
13.2.2FormControl類197
13.2.3FormArray類198
13.2.4FormGroup類198
13.3表單指令199
13.4表單數據訪問器200
13.5模板驅動表單相關指令202
13.5.1NgForm指令202
13.5.2NgModel指令203
13.5.3NgModelGroup指令205
13.6響應式表單相關指令206
13.6.1FormControlDirective指令207
13.6.2FormGroupDirective指令207
13.6.3FormControlName指令208
13.6.4FormGroupName指令208
13.6.5FormArrayName指令209
13.7表單構建器生成表單控件210
13.8表單驗證211
13.8.1內置驗證器的用法211
13.8.2組合使用內置驗證器211
13.8.3自定義驗證器211
13.8.4表單控件狀態的CSS樣式類212
13.9使用 ngSubmit 事件提交表單213
13.10創建兩種類型的表單214
13.10.1[示例form-ex100]創建模板驅動表單和數據綁定214
13.10.2[示例form-ex200]創建響應式表單和數據綁定217
13.11模板驅動表單和響應式表單可以混合使用嗎220
13.12小結220
第14章HttpClient模塊221
14.1HTTP簡介221
14.1.1HTTP請求222
14.1.2HTTP響應222
14.2應用HttpClient模塊223
14.3創建RESTful API服務224
14.3.1使用json-server創建RESTful API服務224
14.3.2使用Angular內存數據庫模擬服務器225
14.4從服務器獲取數據227
14.4.1請求帶類型的響應228
14.4.2[示例httpclient-ex100]使用HttpClient模塊的GET請求從服務器獲取數據228
14.5HttpClient模塊的請求頭配置231
14.5.1添加請求頭231
14.5.2讀取完整的響應信息232
14.5.3配置請求參數232
14.5.4修改請求頭233
14.5.5發出JSONP請求233
14.5.6請求非JSON數據234
14.6HttpClient模塊與RxJS配合234
14.6.1錯誤處理234
14.6.2重試235
14.7把數據發送到服務器235
14.7.1發起 T請求236
14.7.2發起DELETE請求236
14.7.3發起PUT請求237
14.7.4[示例httpclient-ex300]使用HttpClient模塊把數據發送到服務器237
14.8HTTP請求和響應的不變性243
14.8.1HTTP的請求體和克隆體243
14.8.2清空請求體243
14.9Angular243
14.9.1創建244
14.9.2配置提供商245
14.9.3[示例httpclient-ex400]配置日志和錯誤信息的245
14.10小結250
第15章Angular管道251
15.1Angular管道的用法251
15.2Angular內置管道252
15.2.1async管道252
15.2.2currency管道252
15.2.3date管道254
15.2.4i18nSelect管道258
15.3自定義管道258
15.3.1自定義管道的步驟259
15.3.2[示例pipe-ex100]創建排序自定義管道259
15.4小結260
本書帶領讀者學習使用Angular構建Web應用程序:首先從Angular基礎知識與核心概念入手,幫助Web開發初學者樹立正確的開發理念,接下來講解了Angular的各個功能模塊,包括組件、模板、指令、模塊、路由、服務和依賴、響應式編程、表單、HttpClient模塊和Angular管道。除了對知識點的細致剖析,本書結合了作者多年的開發經驗,提供了貼近實戰的示例代碼,一幫助Web開發初學者舉一反三,在真實的生產環境中學以致用。