3dwoo大學簡體電腦書店
Angular 高級編程(第3版)
( 簡體 字)
作者:[美]亞當·弗雷曼(Adam Freeman) 著 睢丹 譯類別:1. -> 程式設計 -> 網路編程 -> AngularJS
出版社:清華大學出版社Angular 高級編程(第3版) 3dWoo書號: 51403
詢問書籍請說出此書號!
有庫存
NT售價: 690
出版日:6/1/2019
頁數:530
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302529170 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第Ⅰ部分Angular基礎知識
第1章準備工作3
1.1需要了解什么3
1.2本書結構3
1.2.1第Ⅰ部分:Angular基礎知識3
1.2.2第Ⅱ部分:Angular詳解3
1.2.3第Ⅲ部分:Angular高級功能3
1.3大量示例4
1.4獲取示例代碼5
1.5如何搭建開發環境5
1.6聯系作者5
1.7本章小結5
第2章第一個Angular應用程序7
2.1準備開發環境7
2.1.1安裝Node.js7
2.1.2安裝angular-cli包8
2.1.3安裝Git8
2.1.4安裝編輯器8
2.1.5安裝瀏覽器9
2.2創建并準備項目9
2.2.1創建項目9
2.2.2添加BootstrapCSS包9
2.2.3啟動開發工具10
2.2.4編輯HTML文件10
2.3向項目中添加Angular功能12
2.3.1準備HTML文件12
2.3.2創建數據模型12
2.3.3創建模板14
2.3.4準備組件14
2.3.5將應用程序組合起來16
2.4向示例應用程序中添加功能17
2.4.1添加待辦事項表格17
2.4.2創建雙向數據綁定19
2.4.3添加待辦事項21
2.5本章小結23
第3章將Angular放在上下文中25
3.1理解Angular的強項25
3.1.1往返式應用程序和單頁式應用程序25
3.1.2Angular與jQuery的比較26
3.2比較Angular、React和Vue.js27
3.3理解MVC模式27
3.3.1理解模型28
3.3.2理解控制器/組件29
3.3.3理解視圖/模板30
3.4理解RESTful服務30
3.5常見的設計缺陷31
3.5.1將邏輯放錯地方31
3.5.2數據存儲采用的數據格式32
3.5.3足夠的知識足以制造麻煩32
3.6本章小結32
第4章HTML和CSS入門33
4.1準備示例項目33
4.2理解HTML34
4.2.1理解空元素35
4.2.2理解屬性35
4.2.3應用無值屬性35
4.2.4在屬性中引用字面量35
4.2.5理解元素內容36
4.2.6理解文檔結構36
4.3理解Bootstrap37
4.3.1應用基本的Bootstrap類37
4.3.2使用Bootstrap樣式化表格40
4.3.3使用Bootstrap創建表單41
4.3.4使用Bootstrap創建網格42
4.4本章小結46
第5章JavaScript與TypeScript:第1部分47
5.1準備示例項目48
5.2使用語句49
5.3定義和使用函數50
5.3.1定義帶參數的函數51
5.3.2定義返回結果的函數52
5.3.3將函數用作其他函數的實參52
5.4使用變量和類型53
5.4.1使用變量閉包54
5.4.2使用基本數據類型54
5.5使用JavaScript操作符56
5.5.1使用條件語句56
5.5.2相等操作符和恒等操作符57
5.5.3顯式類型轉換58
5.6處理數組59
5.6.1使用數組字面量59
5.6.2數組內容的讀取和修改59
5.6.3遍歷數組內容60
5.6.4spread操作符60
5.6.5使用內置數組方法61
5.7本章小結62
第6章JavaScript與TypeScript:第2部分63
6.1準備示例項目63
6.2使用對象63
6.2.1使用對象字面量64
6.2.2將函數用作方法64
6.2.3定義類65
6.3處理JavaScript模塊67
6.4有用的TypeScript特性70
6.4.1使用類型注解70
6.4.2使用元組74
6.4.3使用可索引類型74
6.4.4使用訪問修飾符74
6.5本章小結75
第7章SportsStore:一個真實的應用程序77
7.1準備項目77
7.1.1安裝額外的NPM軟件包77
7.1.2準備RESTfulWeb服務78
7.1.3準備HTML文件80
7.1.4創建文件夾結構80
7.1.5運行示例應用程序80
7.1.6啟動RESTfulWeb服務81
7.2準備Angular項目功能81
7.2.1更新根組件81
7.2.2更新根模塊82
7.2.3檢查引導文件82
7.3啟動數據模型83
7.3.1創建模型類83
7.3.2創建虛擬數據源83
7.3.3創建模型存儲庫84
7.3.4創建功能模塊85
7.4啟動商店85
7.4.1創建Store組件和模板85
7.4.2創建商店功能模塊86
7.4.3更新根組件和根模塊87
7.5添加商店功能:產品詳情88
7.5.1顯示產品詳情88
7.5.2添加類別選擇89
7.5.3添加產品分頁功能90
7.5.4創建自定義指令92
7.6本章小結95
第8章SportsStore:訂單和結賬97
8.1準備示例應用程序97
8.2創建購物車97
8.2.1創建購物車模型97
8.2.2創建購物車概覽組件98
8.2.3將購物車集成到商店中100
8.3添加URL路由102
8.3.1創建購物車詳情和結賬組件102
8.3.2創建和應用路由配置103
8.3.3應用程序導航104
8.3.4路由守衛106
8.4完成購物車詳情功能107
8.5處理訂單109
8.5.1擴展模型109
8.5.2收集訂單詳情111
8.6使用RESTfulWeb服務114
8.7本章小結115
第9章SportsStore:管理117
9.1準備示例應用程序117
9.1.1創建模塊117
9.1.2配置URL路由系統119
9.1.3導航到管理URL120
9.2實現身份驗證121
9.2.1理解身份驗證系統121
9.2.2擴展數據源122
9.2.3創建身份驗證服務122
9.2.4啟用身份驗證123
9.3擴展數據源和存儲庫125
9.4創建管理功能結構128
9.4.1創建占位符組件128
9.4.2準備常用內容和功能模塊129
9.4.3實現產品功能130
9.4.4實現訂單功能133
9.5本章小結135
第10章SportsStore:漸進式功能和部署137
10.1準備示例應用程序137
10.2添加漸進式特性137
10.2.1安裝PWA包137
10.2.2緩存數據URL137
10.2.3響應對連接的更改138
10.3為部署準備應用程序140
10.3.1創建數據文件140
10.3.2創建服務器140
10.3.3更改存儲庫類中的Web服務URL142
10.4構建和測試應用程序142
10.5將SportsStore應用程序容器化144
10.5.1安裝Docker144
10.5.2準備應用程序144
10.5.3創建Docker容器144
10.5.4運行應用程序145
10.6本章小結146
第Ⅱ部分Angular詳解
第11章創建Angular項目149
11.1創建新的Angular項目149
11.2了解項目結構150
11.2.1了解src文件夾151
11.2.2了解包文件夾152
11.3使用開發工具154
11.3.1了解開發HTTP服務器155
11.3.2了解熱模型替換155
11.3.3使用linter156
11.4理解Angular應用程序是如何工作的158
11.4.1理解HTML文檔158
11.4.2理解應用程序引導158
11.4.3理解Angular根模塊159
11.4.4理解Angular組件160
11.4.5理解內容顯示160
11.5在Angular項目中開始開發161
11.5.1添加BootstrapCSS框架161
11.5.2創建數據模型161
11.5.3創建模板和根組件164
11.5.4配置根Angular模塊165
11.6本章小結165
第12章使用數據綁定167
12.1準備示例項目167
12.2理解單向數據綁定168
12.2.1理解綁定目標169
12.2.2理解表達式170
12.2.3理解括號171
12.2.4理解宿主元素171
12.3使用標準屬性和屬性綁定172
12.3.1使用標準屬性綁定172
12.3.2使用字符串插入綁定173
12.3.3使用元素屬性綁定174
12.4設置CSS類和樣式174
12.4.1使用類綁定175
12.4.2使用樣式綁定178
12.5更新應用程序的數據180
12.6本章小結182
第13章使用內置指令183
13.1準備示例項目183
13.2使用內置指令185
13.2.1使用ngIf指令185
13.2.2使用ngSwitch指令187
13.2.3使用ngFor指令189
13.2.4使用ngTemplateOutlet指令195
13.3理解單向數據綁定的限制197
13.3.1使用冪等表達式197
13.3.2理解表達式上下文199
13.4本章小結201
第14章使用事件和表單203
14.1準備示例項目203
14.1.1導入表單模塊203
14.1.2準備組件和模板204
14.2使用事件綁定205
14.2.1理解動態定義的屬性206
14.2.2使用事件數據208
14.2.3使用模板引用變量209
14.3使用雙向數據綁定210
14.4處理表單212
14.4.1向示例應用程序添加表單213
14.4.2添加表單數據驗證214
14.4.3驗證整個表單221
14.5使用基于模型的表單226
14.5.1啟用基于模型的表單功能226
14.5.2定義表單模型類226
14.5.3使用模型進行驗證229
14.5.4根據模型生成元素231
14.6創建自定義表單驗證器232
14.7本章小結234
第15章創建屬性指令235
15.1準備示例項目235
15.2創建簡單的屬性指令237
15.3在指令中訪問應用程序數據239
15.3.1讀取宿主元素屬性239
15.3.2創建數據綁定輸入屬性241
15.3.3響應輸入屬性的變化243
15.4創建自定義事件244
15.5創建宿主元素綁定247
15.6在宿主元素上創建雙向綁定248
15.7導出指令用于模板變量250
15.8本章小結251
第16章創建結構型指令253
16.1準備示例項目253
16.2創建簡單的結構型指令254
16.2.1實現結構型指令類255
16.2.2啟用結構型指令257
16.2.3使用結構型指令的簡潔語法258
16.3創建迭代結構型指令259
16.3.1提供額外的上下文數據261
16.3.2使用簡潔的結構語法262
16.3.3處理屬性級數據變更263
16.3.4處理集合級數據變更264
16.4查詢宿主元素內容271
16.4.1查詢多個子內容274
16.4.2接收查詢變更通知275
16.5本章小結276
第17章理解組件277
17.1準備示例項目278
17.2使用組件來組織應用程序278
17.2.1創建新組件279
17.2.2定義模板282
17.2.3完成組件的重組289
17.3使用組件樣式289
17.3.1定義外部組件樣式290
17.3.2使用高級樣式特性291
17.4查詢模板內容296
17.5本章小結298
第18章使用和創建管道299
18.1準備示例項目299
18.2理解管道302
18.3創建一個自定義管道303
18.3.1注冊自定義管道303
18.3.2應用自定義管道304
18.3.3組合管道305
18.3.4創建非純管道306
18.4使用內置管道309
18.4.1格式化數值309
18.4.2格式化貨幣值311
18.4.3格式化百分比313
18.4.4格式化日期314
18.4.5改變字符串大小寫317
18.4.6將數據序列化為JSON數據317
18.4.7將數據數組切片318
18.5本章小結319
第19章使用服務321
19.1準備示例項目321
19.2理解對象分發問題322
19.2.1問題的提出322
19.2.2利用依賴注入將對象作為服務分發326
19.2.3在其他構造塊中聲明依賴330
19.3理解測試隔離問題335
19.4完成服務的融入338
19.4.1更新根組件和模板338
19.4.2更新子組件339
19.5本章小結340
第20章使用服務提供程序341
20.1準備示例項目342
20.2使用服務提供程序343
20.2.1使用類提供程序345
20.2.2使用值提供程序350
20.2.3使用工廠提供程序351
20.2.4使用已有的服務提供程序353
20.3使用本地提供程序354
20.3.1理解單個服務對象的局限性354
20.3.2在組件中創建本地提供程序355
20.3.3理解服務提供程序的替代方案357
20.3.4控制依賴解析360
20.4本章小結361
第21章使用和創建模塊363
21.1準備示例項目363
21.2理解根模塊365
21.2.1理解imports屬性366
21.2.2理解declarations屬性366
21.2.3理解providers屬性367
21.2.4理解bootstrap屬性367
21.3創建功能模塊368
21.3.1創建模型模塊369
21.3.2創建實用工具功能模塊373
21.3.3用組件創建一個功能模塊377
21.4本章小結380
第Ⅲ部分Angular高級功能
第22章創建示例項目383
22.1啟動示例項目383
22.1.1添加和配置BootstrapCSS包383
22.1.2創建項目結構383
22.2創建模型模塊384
22.2.1創建產品數據類型384
22.2.2創建數據源和存儲庫384
22.2.3完成模型模塊385
22.3創建核心模塊385
22.3.1創建共享狀態服務386
22.3.2創建表格組件386
22.3.3創建表單組件387
22.4.4完成核心模塊389
22.4創建消息模塊389
22.4.1創建消息模型和服務389
22.4.2創建組件和模板390
22.4.3完成消息模塊390
22.5完成項目391
22.6本章小結392
第23章使用ReactiveExtensions393
23.1準備示例項目394
23.2理解問題394
23.3使用ReactiveExtensions解決問題396
23.3.1理解Observable396
23.3.2理解Observer398
23.3.3理解Subject399
23.4使用async管道400
23.5擴展應用程序功能模塊402
23.6更進一步404
23.6.1過濾事件404
23.6.2轉換事件405
23.6.3只接收不同的事件407
23.6.4獲取和忽略事件409
23.7本章小結410
第24章生成異步HTTP請求411
24.1準備示例項目411
24.1.1配置模型功能模塊412
24.1.2創建數據文件412
24.1.3更新表單組件413
24.1.4運行示例項目413
24.2理解RESTfulWeb服務414
24.3替換靜態數據源414
24.3.1創建新的數據源服務414
24.3.2配置數據源416
24.3.3使用REST數據源416
24.3.4保存和刪除數據417
24.4加強HTTP請求419
24.5生成跨域請求420
24.6配置請求頭422
24.7處理錯誤424
24.7.1生成用戶可使用的消息425
24.7.2處理錯誤426
24.8本章小結427
第25章路由與導航:第1部分429
25.1準備示例項目429
25.2開始學習路由431
25.2.1創建路由配置431
25.2.2創建路由組件433
25.2.3更新根模塊433
25.2.4完成配置433
25.2.5添加導航鏈接434
25.2.6理解路由的效果436
25.3完成路由實現437
25.3.1在組件中處理路由變化438
25.3.2使用路由參數439
25.3.3在代碼中導航444
25.3.4接收導航事件445
25.3.5刪除事件綁定和支持代碼446
25.4本章小結448
第26章路由與導航:第2部分449
26.1準備示例項目449
26.2使用通配符和重定向454
26.2.1在路由中使用通配符454
26.2.2在路由中使用重定向455
26.3在組件內部導航456
26.3.1響應正在發生的路由變化457
26.3.2為活動路由設置不同樣式的鏈接459
26.3.3修復All按鈕461
26.4創建子路由462
26.4.1創建子路由出口463
26.4.2從子路由訪問參數464
26.5本章小結467
第27章路由與導航:第3部分469
27.1準備示例項目469
27.2守衛路由470
27.2.1使用解析器推遲導航470
27.2.2避免帶有守衛的導航476
27.3動態加載功能模塊484
27.3.1創建一個簡單的功能模塊484
27.3.2動態加載模塊485
27.3.3守衛動態模塊488
27.4指定命名出口490
27.4.1創建附加的出口元素490
27.4.2在使用多個出口的情況下導航491
27.5本章小結493
第28章使用動畫495
28.1準備示例項目496
28.1.1禁用HTTP延遲496
28.1.2簡化表格模板和路由配置496
28.2開始學習Angular動畫498
28.2.1啟用動畫模塊498
28.2.2創建動畫499
28.2.3應用動畫501
28.2.4測試動畫效果503
28.3理解內置的動畫狀態504
28.4理解元素過渡505
28.4.1為內置狀態創建過渡505
28.4.2控制動畫的過渡506
28.5理解動畫樣式組510
28.5.1在可重用的分組中定義公共樣式510
28.5.2使用元素變形511
28.5.3應用CSS框架樣式512
28.6本章小結514
第29章Angular單元測試515
29.1準備示例項目516
29.2創建一個簡單的單元測試517
29.3使用Jasmine完成單元測試518
29.4測試Angular組件519
29.4.1使用TestBed類完成工作519
29.4.2測試數據綁定522
29.4.3測試帶有外部模板的組件523
29.4.4測試組件事件525
29.4.5測試輸出屬性526
29.4.6測試輸入屬性528
29.4.7測試異步操作529
29.5測試Angular指令531
29.6本章小結532


主要內容:
? 深入理解MVC模式的架構
? 使用Angular創建內容豐富、靈動多變的Web應用客戶端
? 使用ng工具創建和構建Angular項目
? 擴展和定制Angular
? 測試Angular項目

新增內容:
? 根據Angular 7的特性和變化做了全面細致的修訂
? 涵蓋@angular/cli、ng命令行工具和webpack
? 包含用于簡化異步HTTP請求的HttpClient
? 更新了管道和本地化文本的顯示

█ █ █
譯 者 序



在Web開發領域,一般使用HTML作為前端頁面元素的聲明式語言,使用CSS技術作為展示樣式的描述語言,JavaScript作為業務處理交互的命令式語言。而構建非常復雜的Web應用時,純粹而有限的HTML就顯得非常不足,JavaScript本身也會隨著項目代碼量的膨脹而變得難以維護和管理,研發工期和成本也會隨之難以控制。此時,一般使用類庫(如jQuery、Dojo等)或框架(如Backbone、Ember和ExtJS等)來提升開發效率,縮短項目的工期和降低成本,方便后續的維護和管理。
而AngularJS不僅是一個理念先進的前端開發框架,更是一種端對端的解決方案,已經被用于Google的多款產品中。AngularJS遵從架構設計中的MVC模式,提倡展現、數據和邏輯處理組件的松耦合(類似Flex和WPF)。AngularJS通過指令技術對傳統HTML實現了自然擴展,通過編譯技術實現了數據模型與展現視圖的雙向自動同步,消除了前端開發中繁雜的DOM操作。最后通過模塊化設計解決了JS代碼管理維護和按需加載的問題,提高了廣大前端程序員以及后端程序員的生產效率。而且這種解耦本身,也對前端的自動化測試技術提供了良好的支持。
AngularJS誕生于2009年,由Misko Hevery 和Adam Abrons創建,后為Google所收購。AngularJS有許多特性,最為核心的是:MVVM、模塊化、自動化雙向數據綁定、語義化標簽、依賴注入等。AngularJS 是專門為應用程序設計的 HTML。
Angular 2.0是2014年10月22日在ng-Europe會議上發布的,該版本完全重寫了AngularJS。為避免開發人員的困惑,開發團隊宣布每個框架都應該使用單獨的術語,其中“AngularJS”指的是版本1。x版本和沒有“JS”的“Angular”指的是版本2及更高版本。
Angular 6于2018年5月4日發布。這是一個重要版本,它對底層框架的關注較少,考慮更多的是工具鏈,以及如何使Angular更易于在未來提高效率,如ng update、ng add、Angular Elements、Angular Material + CDK Components、Angular Material Starter Components、CLI Workspaces、Library Support、Tree Shakable Providers、Animations Performance Improvements和RxJS v6。
Angular 7讓Angular變得更出色,為順應現代趨勢增加了比特幣挖掘、虛擬滾動、拖放等功能。
《Angular高級編程(第3版)》分為三個部分,每部分涵蓋一組相關的主題。《Angular高級編程(第3版)》第Ⅰ部分回顧了一些關鍵技術的基本知識,包括HTML、CSS和TypeScript,并展示如何構建第一個Angular應用程序。第Ⅱ部分介紹Angular為構建應用程序提供的構造塊,依次描述所有這些構造塊。深入描述Angular包含的很多內置功能,以及豐富的Angular自定義選項。第Ⅲ部分介紹如何使用高級功能來創建更復雜、可擴展的應用程序。演示如何在Angular應用程序中進行異步HTTP請求,如何使用URL路由在應用程序中導航,以及在應用程序的狀態發生變化時如何使HTML元素具有動畫效果。
《Angular高級編程(第3版)》堪稱Angular領域的里程碑式著作,涵蓋了關于Angular的幾乎所有內容。《Angular高級編程(第3版)》平實、通俗的講解,豐富、翔實的示例,遞進、嚴密的組織,可以讓新手毫無壓力地登堂入室,迅速吸取新一代Web應用開發的精髓。對于具有相關經驗的用戶,《Angular高級編程(第3版)》對Angular概念和技術細節的全面剖析,以及引人入勝、切中肯綮的講解,將幫助讀者徹底掌握這個框架,在自己職業技術修煉之路上更進一步。
這里要感謝清華大學出版社的編輯們,他們為《Angular高級編程(第3版)》的翻譯投入了巨大熱情并付出了很多心血。沒有他們的幫助和鼓勵,《Angular高級編程(第3版)》不可能順利付梓。
對于這本經典之作,譯者本著“誠惶誠恐”的態度,在翻譯過程中力求“信、達、雅”,但是鑒于譯者水平有限,錯誤和失誤在所難免,如有任何意見和建議,請不吝指正。
譯者

pagetop