微前端實戰 Micro Frontends in Action
Michael Geers 譯 顏宇 周軼 張兆陽
- 出版商: 清華大學
- 出版日期: 2022-06-01
- 定價: $588
- 售價: 8.5 折 $500
- 貴賓價: 8.0 折 $470
- 語言: 簡體中文
- 裝訂: 平裝
- ISBN: 7302603863
- ISBN-13: 9787302603863
- 此書翻譯自: Micro Frontends in Action
-
相關翻譯:
決戰!微前端架構 Micro Frontends:新一代可擴展的網頁開發模式,實現各種框架的無縫整合與溝通 (繁中版)
立即出貨
買這商品的人也買了...
-
$403深入淺出 Webpack
-
$680$537 -
$352$331 -
$420$332 -
$400$316 -
$480$408 -
$403前端架構:從入門到微前端
-
$800$600 -
$450$356 -
$714$678 -
$594$564 -
$1,000$660 -
$500$390 -
$700$553 -
$890$587 -
$828$787 -
$560$420 -
$500$390 -
$599$569 -
$648$616 -
$505自然語言處理的 Python 實踐
-
$650$507 -
$650$507 -
$1,080$713 -
$580$435
相關主題
商品描述
主要內容
●將多個獨立的應用程序組合成一個統一的前端應用程序
●將基於不同框架的代碼組合在一起
●瀏覽器端組合、服務端組合以及路由
●高效的開發團隊實踐和項目工作流
目錄大綱
第Ⅰ部分 微前端初體驗
第1章 什麽是微前端 3
1.1 概覽圖 4
1.1.1 系統和團隊 5
1.1.2 前端 8
1.1.3 前端集成 11
1.1.4 公共話題 13
1.2 微前端解決了哪些問題 14
1.2.1 優化功能開發 14
1.2.2 不再有前端巨石架構 15
1.2.3 適應變化 16
1.2.4 自主的優勢 19
1.3 微前端的缺點 21
1.3.1 冗餘 21
1.3.2 一致性 21
1.3.3 異質性 22
1.3.4 更多的前端代碼 22
1.4 使用微前端的合理時機 23
1.4.1 適合大中型項目 23
1.4.2 在Web應用程序中使用效果最好 23
1.4.3 效率與開銷 24
1.4.4 微前端不適用的場景 25
1.4.5 誰在使用微前端 26
1.5 本章小結 26
第2章 我的第一個微前端項目 29
2.1 The Tractor Store簡介 30
2.1.1 準備開始 30
2.1.2 運行書中的示例代碼 32
2.2 通過鏈接進行頁面跳轉 35
2.2.1 數據所有權 35
2.2.2 團隊契約 36
2.2.3 如何實現 37
2.2.4 處理URL的變化 40
2.2.5 優點 41
2.2.6 缺點 42
2.2.7 何時使用鏈接集成技術 42
2.3 通過iframe進行組合 42
2.3.1 如何實現 43
2.3.2 優點 45
2.3.3 缺點 45
2.3.4 何時使用iframe集成技術 46
2.4 內容預告 46
2.5 本章小結 47
第Ⅱ部分 路由、組合與通信
第3章 使用Ajax進行組合與服務端路由 51
3.1 通過Ajax進行組合 52
3.1.1 如何實現 53
3.1.2 樣式與腳本的命名空間 55
3.1.3 聲明式地加載h-include 59
3.1.4 優點 59
3.1.5 缺點 61
3.1.6 何時使用Ajax集成 62
3.1.7 總結 62
3.2 通過Nginx實現服務端路由 63
3.2.1 如何實現 66
3.2.2 資源的命名空間 69
3.2.3 路由配置的方法 70
3.2.4 基礎設施的歸屬 71
3.2.5 何時應使用單個域名 73
3.3 本章小結 73
第4章 服務端組合 75
4.1 通過Nginx和服務端包含(SSI)進行組合 76
4.1.1 如何實現 77
4.1.2 更少的加載次數 80
4.2 處理不可靠的片段 81
4.2.1 可分離的片段 82
4.2.2 集成Near You片段 83
4.2.3 超時和回退 84
4.2.4 回退內容 86
4.3 深入研究標簽的組裝性能 87
4.3.1 並行加載 87
4.3.2 嵌套的片段 88
4.3.3 延遲加載 89
4.3.4 首字節時間和流式輸出 90
4.4 其他解決方案概述 92
4.4.1 Edge-Side Includes 92
4.4.2 Zalando Tailor 93
4.4.3 Podium 95
4.4.4 哪種方案更適合 102
4.5 服務端組合的優缺點 104
4.5.1 優點 104
4.5.2 缺點 104
4.5.3 使用服務端集成的時機 105
4.6 本章小結 106
第5章 客戶端組合 107
5.1 使用Web Component封裝微前端 108
5.1.1 如何實現 110
5.1.2 將框架封裝在Web Component內 115
5.2 使用Shadow DOM實現樣式隔離 117
5.2.1 創建shadow root 117
5.2.2 樣式隔離 118
5.2.3 何時使用Shadow DOM 120
5.3 使用Web Component進行組合的優缺點 121
5.3.1 優點 121
5.3.2 缺點 122
5.3.3 使用客戶端集成的時機 122
5.4 本章小結 123
第6章 通信模式 125
6.1 用戶界面通信 126
6.1.1 父級頁面到片段 127
6.1.2 片段到父級頁面 131
6.1.3 片段到片段 135
6.1.4 使用Broadcast Channel API發布/訂閱 140
6.1.5 UI通信更適合什麽場景 142
6.2 其他通信機制 143
6.2.1 全局上下文和身份驗證 143
6.2.2 管理狀態 145
6.2.3 前後端通信 145
6.2.4 數據復制 146
6.3 本章小結 148
第7章 客戶端路由和應用程序容器 149
7.1 應用程序容器中的扁平化路由 152
7.1.1 什麽是應用程序容器 152
7.1.2 剖析應用程序容器 153
7.1.3 客戶端路由 155
7.1.4 頁面的渲染 158
7.1.5 應用程序容器和團隊間的契約 161
7.2 雙層路由的應用程序容器 162
7.2.1 實現一級路由 163
7.2.2 團隊層面的路由實現 164
7.2.3 在URL變化時會發生什麽 166
7.2.4 應用程序容器API 169
7.3 single-spa元框架的簡述 171
7.4 來自統一單頁面應用的挑戰 178
7.4.1 需要思考的問題 179
7.4.2 何時適合使用統一的單頁面應用 181
7.5 本章小結 183
第8章 組合和多端渲染 185
8.1 結合使用服務端和客戶端組合 187
8.1.1 SSI和Web Component 188
8.1.2 團隊間的約定 194
8.1.3 其他解決方案 195
8.2 何時適合採用多端組合 195
8.2.1 純服務端組合的多端渲染 195
8.2.2 復雜性增加 196
8.2.3 多端的統一單頁面應用 196
8.3 本章小結 197
第9章 適合我們項目的架構 199
9.1 復習專業術語 200
9.1.1 路由和頁面切換 200
9.1.2 組合技術 201
9.1.3 頂層架構 203
9.2 復雜度的比較 206
9.3 是構建網站還是應用程序 208
9.3.1 Documents-to-Applications Continuum 208
9.3.2 服務端渲染、客戶端渲染和多端渲染的選擇 210
9.4 選擇正確的架構和集成技術 211
9.4.1 強隔離(遺留系統,第三方引入) 213
9.4.2 快速的首頁加載/漸進式增強 213
9.4.3 即時的用戶反饋 214
9.4.4 路由跳轉 215
9.4.5 同一頁面集成多個微前端 216
9.5 本章小結 216
第Ⅲ部分 如何做到快速、一致、有效
第10章 資源加載 221
10.1 資源引用策略 222
10.1.1 直接引用 222
10.1.2 挑戰:緩存破壞和獨立部署 223
10.1.3 通過重定向引用(客戶端) 225
10.1.4 通過include引用(服務端) 227
10.1.5 挑戰:同步標簽和資源版本 230
10.1.6 代碼嵌入 233
10.1.7 集成解決方案(Tailor、Podium等) 234
10.1.8 簡單總結 237
10.2 打包粒度 238
10.2.1 HTTP/2 238
10.2.2 all-in-one打包方式 239
10.2.3 以團隊維度進行打包 239
10.2.4 以頁面和片段的維度進行打包 240
10.3 按需加載 241
10.3.1 微前端代理 241
10.3.2 CSS的懶加載 242
10.4 本章小結 242
第11章 至關重要的性能 243
11.1 高性能架構設計 244
11.1.1 性能指標因團隊而異 245
11.1.2 多團隊協作時的性能預算 246
11.1.3 排查性能下降的原因 247
11.1.4 性能收益 249
11.2 精簡並復用vendor庫 251
11.2.1 團隊自治的代價 251
11.2.2 精簡代碼 253
11.2.3 全局範圍內引用相同版本的verdor庫 254
11.2.4 vendor代碼版本管理 256
11.2.5 不要共享業務代碼 271
11.3 本章小結 272
第12章 UI設計系統 275
12.1 為什麽需要一個設計系統 276
12.1.1 目標與作用 278
12.1.2 益處 278
12.2 公用設計系統與自治團隊 279
12.2.1 是否有必要搭建自己的設計系統 279
12.2.2 不斷完善設計系統 280
12.2.3 持續投入以及責任到人 280
12.2.4 獲得團隊的認可 281
12.2.5 開發流程:集中模式與聯合模式 283
12.2.6 開發階段 285
12.3 運行時整合與構建時整合 286
12.3.1 運行時整合 287
12.3.2 版本包 289
12.4 樣式庫中的組件:通用與定製 293
12.4.1 組件類型的選擇 293
12.4.2 改變 297
12.5 哪些組件應該沉澱到中心化的樣式庫中 298
12.5.1 公用組件的成本 299
12.5.2 公用樣式庫或者本地開發 299
12.5.3 公用樣式庫和私有樣式庫 302
12.6 本章小結 303
第13章 團隊及職責邊界 305
13.1 將系統與團隊對齊 306
13.1.1 明確團隊邊界 307
13.1.2 團隊組成 310
13.1.3 文化改變 313
13.2 知識分享 314
13.2.1 實踐社區 315
13.2.2 學習及賦能 316
13.2.3 展示工作 316
13.3 橫向共性問題 317
13.3.1 中心化的基礎設施 317
13.3.2 專業化的組件團隊 318
13.3.3 一致的協議和約定 319
13.4 技術多樣性 319
13.4.1 工具箱和默認選擇 319
13.4.2 前端藍圖 320
13.4.3 不要抵觸復制 322
13.4.4 步調一致的好處 322
13.5 本章小結 323
第14章 遷移、本地開發及測試 325
14.1 遷移 326
14.1.1 概念驗證和示範作用 326
14.1.2 策略一:逐個遷移 328
14.1.3 策略二:前端先行 330
14.1.4 策略三:greenfield和“大爆炸” 332
14.2 本地開發 333
14.2.1 不要運行其他團隊的代碼 334
14.2.2 模擬頁面片段 335
14.2.3 沙盒化代碼片段 337
14.2.4 從備機環境或者生產環境中集成其他團隊的微前端 339
14.3 測試 339
14.4 本章小結 341