《MERN全棧開發:使用Mongo Express React和Node》是2018年1月清華大學出版社出版的圖書,作者是[美]Vasan Subramanian 。
基本介紹
- 書名:MERN全棧開發:使用Mongo Express React和Node
- 作者:[美]Vasan Subramanian
- 出版社:清華大學出版社
- 出版時間:2018年1月
- 定價:59.8 元
- ISBN:9787302491521
內容簡介,圖書目錄,
內容簡介
使用React構建現代Web套用,需要組合使用一個完整的技術棧:MongoDB(NoSQL資料庫)、Express(Web套用伺服器框架)及其運行語言Node(伺服器端的JavaScript),從而形成對React技術的完美補充。本書還涵蓋了構建完整Web套用所用到的諸多工具:React Router、React-Bootstrap、Redux、babel以及webpack。
《MERN全棧開發 使用Mongo Express React和Node》旨在幫助讀者掌握構建完備Web套用的技能,書中的大部分內容都會專注於React技術的使用。
流行的MEAN(MongoDB、Express、AngularJS、Node)技術棧引入了單頁面套用(SPA)和前端的MVC(模型-視圖-控制器)模式,引領了全新、高效的開發模式。不過它也有缺點,例如缺乏能夠良好支持SEO的伺服器端渲染能力,以及作為框架而言過於嚴格的規範性。
Facebook創立的React技術並不是AngularJS直接的競爭對手,它並不是一個完整的MVC框架,而是一個用於創建用戶界面(某種意義上來說,就是視圖部分)的JavaScript庫。然而,使用React替代AngularJS來創建Web套用也是完全可行的,這也正是MERN技術棧存在的價值。
圖書目錄
第1章 引言 1
1.1 MERN是什麼 1
1.2 本書的目標讀者 3
1.3 本書組織結構 3
1.4 格式約定 5
1.5 讀者須知 7
1.6 MERN的組件 8
1.6.1 React 8
1.6.2 Node.js 11
1.6.3 Express 14
1.6.4 MongoDB 15
1.6.5 工具與庫 17
1.7 為何使用MERN技術棧 19
1.7.1 清一色的JavaScript語言 19
1.7.2 清一色的JSON數據格式 20
1.7.3 Node.js的性能 20
1.7.4 npm生態系統 21
1.7.5 同構性 21
1.7.6 它不是一個框架 22
1.8 小結 22
第2章 Hello World 23
2.1 脫離伺服器的Hello World 23
2.2 伺服器搭建 27
2.2.1 nvm 27
2.2.2 Node.js 28
2.2.3 項目 29
2.2.4 npm 30
2.2.5 Express 32
2.3 構建階段的JSX編譯 34
2.3.1 分離腳本檔案 35
2.3.2 轉換 36
2.3.3 自動化 38
2.3.4 React庫 39
2.4 ES2015 39
2.5 小結 43
2.6 習題答案 43
2.6.1 習題:JSX 43
2.6.2 習題:npm 44
2.6.3 習題:Express 44
2.6.4 習題:babel 45
2.6.5 習題:ES2015 45
第3章 React組件 47
3.1 Issue Tracker(問題追蹤) 47
3.2 React類 49
3.3 組件組裝 51
3.4 傳遞數據 53
3.4.1 使用屬性 53
3.4.2 屬性校驗 56
3.4.3 使用Children 57
3.5 動態組裝 59
3.6 小結 64
3.7 習題答案 64
3.7.1 習題:React類 64
3.7.2 習題:傳遞數據 64
3.7.3 習題:動態組裝 65
第4章 React狀態 67
4.1 設定狀態 67
4.2 異步狀態初始化 71
4.3 事件處理 73
4.4 從子組件到父組件的通信 74
4.5 無狀態組件 77
4.6 設計組件 79
4.6.1 狀態與props 79
4.6.2 組件層次結構 80
4.6.3 通信 80
4.6.4 無狀態組件 80
4.7 小結 81
4.8 習題答案 81
4.8.1 習題:設定狀態 81
4.8.2 習題:從子組件到父組件的通信 82
第5章 Express REST APIs 83
5.1 REST 83
5.1.1 基於資源 84
5.1.2 使用HTTP Methods標識操作 84
5.1.3 JSON 87
5.2 Express 87
5.2.1 路由 87
5.2.2 處理程式函式 89
5.2.3 中間件 91
5.3 List API 92
5.3.1 伺服器自動重啟 94
5.3.2 測試 95
5.4 Create API 97
5.5 使用List API 100
5.6 使用Create API 102
5.7 錯誤處理 104
5.8 小結 108
5.9 習題答案 109
5.9.1 習題:List API 109
5.9.2 習題:Create API 110
5.9.3 習題:使用List API 111
5.9.4 習題:使用Create API 111
5.9.5 習題:錯誤處理 111
第6章 使用MongoDB 113
6.1 MongoDB基礎 113
6.1.1 文檔 113
6.1.2 集合 114
6.1.3 查詢語言 115
6.1.4 安裝 116
6.1.5 mongo shell 117
6.1.6 shell腳本 121
6.2 架構初始化 122
6.3 MongoDB Node.js驅動程式 123
6.3.1 回調 126
6.3.2 Promises 127
6.3.3 Generator和co模組 128
6.3.4 async模組 129
6.4 從MongoDB讀取數據 131
6.5 向MongoDB寫入數據 134
6.6 小結 136
6.7 習題答案 136
6.7.1 習題:mongo shell 136
6.7.2 習題:架構初始化 137
6.7.3 習題:從MongoDB讀取數據 137
6.7.4 習題:向MongoDB寫入數據 138
第7章 模組化與webpack 139
7.1 伺服器端模組 139
7.2 webpack簡介 142
7.3 手工使用webpack 143
7.4 轉換和打包 146
7.5 庫捆綁包 151
7.6 模組熱替換 155
7.7 使用中間件實現HMR 158
7.8 調試 161
7.9 伺服器端ES2015 163
7.10 ESLint 168
7.11 小結 176
7.12 習題答案 177
7.12.1 習題:轉換和打包 177
7.12.2 習題:模組熱替換 178
7.12.3 習題:伺服器端ES2015 178
7.12.4 習題:ESLint 179
第8章 使用React Router進行路由 181
8.1 路由技術 182
8.2 簡單的路由 183
8.3 路由參數 185
8.4 路由查詢字元串 188
8.5 使用程式進行導航 193
8.6 嵌套的路由 196
8.7 瀏覽器歷史 200
8.8 小結 202
8.9 習題答案 202
8.9.1 習題:路由參數 202
8.9.2 習題:路由查詢字元串 203
8.9.3 習題:使用程式進行導航 204
第9章 表單 205
9.1 List API中的更多過濾功能 205
9.2 過濾表單 207
9.3 Get API 214
9.4 Edit頁面 216
9.5 UI組件 220
9.5.1 數字輸入框 221
9.5.2 Date輸入框 226
9.6 Update API 232
9.7 使用Update API 236
9.8 Delete API 238
9.9 使用Delete API 239
9.10 小結 242
9.11 習題答案 242
9.11.1 習題:在List API中添加更多過濾條件 242
9.11.2 習題:過濾表單 242
9.11.3 習題:Edit頁面 243
9.11.4 習題:Date輸入框 243
9.11.5 習題:Update API 244
第10章 React-Bootstrap 245
10.1 安裝Bootstrap 246
10.2 導航 249
10.3 表格和面板 256
10.4 表單 258
10.4.1 基於柵格的表單 259
10.4.2 內聯表單 263
10.4.3 橫向表單 265
10.5 提示 270
10.5.1 驗證訊息 270
10.5.2 結果訊息 272
10.6 模態對話框 279
10.7 小結 284
10.8 習題答案 285
10.8.1 習題:導航 285
10.8.2 習題:基於柵格的表單 285
10.8.3 習題:內聯表單 286
10.8.4 習題:模態對話框 286
第11章 伺服器端渲染 287
11.1 基本的伺服器端渲染 288
11.2 處理state 293
11.3 初始state 296
11.4 伺服器端bundle 298
11.5 後端HMR 301
11.6 配合路由功能的伺服器端渲染 306
11.7 封裝Fetch操作 314
11.8 小結 319
11.9 習題答案 320
11.9.1 習題:後端HMR 320
11.9.2 習題:配合路由功能的伺服器端渲染 320
第12章 高級特性 321
12.1 MongoDB聚合 321
12.2 分頁 331
12.3 高階組件(Higher Order Components) 336
12.4 搜尋欄 345
12.5 Google賬號登錄 351
12.6 會話處理 359
12.7 小結 367
第13章 展望 369
13.1 Mongoose 370
13.2 Flux 371
13.3 部署 373
13.4 mern.io 375
13.5 同學們,下課 377