●序1
前言3
第1章開發環境9
1.1文本編輯器10
1.2終端10
1.2.1使用專門的終端應用10
1.2.2使用VSCode11
1.2.3在文件繫統中變換位置11
1.3命令行工具和Homebrew(僅適用Mac用戶)12
1.4Node.js和NPM12
1.4.1在macOS中安裝Node.js和NPM13
1.4.2在Windows中安裝Node.js和NPM13
1.5MongoDB14
1.5.1在macOS中安裝和運行MongoDB14
1.5.2在Windows中安裝和運行MongoDB15
1.6Git16
1.7Expo16
1.8Prettier17
1.9ESLint17
1.10美化18
1.11小結18
第2章API簡介19
2.1構建什麼19
2.2如何構建20
2.3開始動手21
2.4小結22
第3章使用Node和Express開發Web應用23
3.1HelloWorld23
3.2Nodemon24
3.3擴展端口選項26
3.4小結27
第4章少有GraphQLAPI28
4.1把服務器(初步)改造成API28
4.2GraphQL基礎知識33
4.2.1模式33
4.2.2解析器34
4.3改造API35
4.4小結43
第5章數據庫44
5.1MongoDB入門45
5.2在應用中連接MongoDB47
5.3在應用中讀寫數據51
5.4小結59
第6章CRUD操作60
6.1分離GraphQL模式和解析器60
6.2編寫GraphQLCRUD模式64
6.3CRUD解析器65
6.4日期和時間67
6.5小結70
第7章用戶賬戶和身份驗證71
7.1應用身份驗證流程71
7.2加密和令牌73
7.2.1加密密碼73
7.2.2JSONWebTokens74
7.3在API中集成身份驗證功能75
7.3.1User模式76
7.3.2身份驗證解析器78
7.4把用戶添加到解析器上下文中82
7.5小結85
第8章用戶操作86
8.1準備工作86
8.2新建筆記時指定用戶87
8.3用戶的更新和刪除權限89
8.4用戶查詢91
8.5收藏筆記94
8.6嵌套查詢99
8.7小結102
第9章細節優化103
9.1Web應用和Express.js很好實踐103
9.1.1ExpressHelmet103
9.1.2跨域資源共享104
9.2分頁105
9.3數據107
9.4其他事項109
9.4.1測試109
9.4.2訂閱109
9.4.3ApolloGraphQLPlatform109
9.5小結110
第10章部署API111
10.1托管數據庫112
10.2部署應用118
10.2.1項目設置118
10.2.2部署120
10.2.3測試120
10.3小結121
第11章用戶界面和React122
11.1JavaScript和UI123
11.2JavaScript聲明式界面124
11.3React入門124
11.4小結130
第12章使用React構建Web客戶端131
12.1構建什麼131
12.2如何構建132
12.3開始動手133
12.4構建Web應用134
12.5路由136
12.6UI組件141
12.7小結144
第13章裝飾應用145
13.1創建布局組件145
13.2CSS148
13.2.1CSS-in-JS149
13.2.2創建一個按鈕組件150
13.2.3添加全局樣式152
13.2.4組件樣式154
13.3小結158
第14章使用ApolloClient159
14.1設置ApolloClient160
14.2查詢API162
14.3動態查詢173
14.4分頁177
14.5小結179
第15章Web身份驗證和狀態管理180
15.1創建注冊表單180
15.1.1React表單和狀態184
15.1.2signUp變更操作186
15.1.3JSONWebToken和本地存儲器189
15.2重定向190
15.3為請求附加首部190
15.4本地狀態管理191
15.5退出195
15.6創建登錄表單198
15.7受保護的路由203
15.8小結205
第16章創建、讀取、更新和刪除操作207
16.1新建筆記207
16.2讀取用戶的筆記214
16.3更新筆記218
16.4刪除筆記226
16.5收藏筆記228
16.6小結232
第17章部署Web應用233
17.1靜態網站233
17.2我們的部署流水線235
17.2.1使用Git托管源碼235
17.2.2使用Netlify部署237
17.3小結239
第18章使用Electron開發桌面應用240
18.1構建什麼240
18.2如何構建241
18.3開始動手241
18.4少有Electron應用242
18.5特別處理macOS應用窗口244
18.6開發者工具245
18.7ElectronAPI246
18.8小結247
第19章使用Electron集成現有的Web應用248
19.1集成Web應用248
19.2配置251
19.3內容安全策略252
19.4小結255
第20章部署Electron應用256
20.1ElectronBuilder256
20.2針對當前平臺構建258
20.3應用圖標259
20.4針對多個平臺構建260
20.5代碼簽名260
20.6小結261
第21章使用ReactNative開發移動應用262
21.1構建什麼263
21.2如何構建263
21.3開始動手264
21.4小結268
第22章移動應用shell269
22.1ReactNative構件269
22.2樣式和StyledComponents271
22.3路由275
22.3.1使用ReactNavigation實現標簽頁路由276
22.3.2堆疊導航279
22.3.3添加界面標題284
22.4圖標285
22.5小結287
第23章GraphQL和ReactNative288
23.1創建列表和滾動內容視圖289
23.2使用ApolloClient操作GraphQL297
23.3添加加載中指示符304
23.4小結306
第24章移動應用身份驗證307
24.1身份驗證路由流程307
24.2創建登錄表單317
24.3通過GraphQL變更操作驗證身份322
24.4帶身份驗證信息的GraphQL查詢324
24.5添加注冊表單329
24.6小結335
第25章分發移動應用337
25.1配置app.json337
25.2圖標和應用加載界面340
25.2.1應用圖標340
25.2.2啟動畫面341
25.3發布到Expo中342
25.4創建原生構建包343
25.4.1iOS344
25.4.2Android345
25.5分發到應用商店中346
25.6小結346
後記347
附錄A在本地運行API349
附錄B在本地運行Web應用351
作者介紹353
封面介紹353
JavaScript是一門小型編程語言,但它能做到的事可不少。JavaScript曾經主要用於增加Web瀏覽器窗口的交互性,現在已經發展成構建強大而健壯的應用的重要工具。這是一本從實際出發的書,適合新手和有經驗的JavaScript開發人員閱讀,學習如何使用JavaScript語言創建API,以及Web、移動和桌面應用。
本書作者AdamD.Scott是一名工程主管,他將帶領你學習Node.js、GraphQL、React、ReactNative和Electron等技術。本書非常適合想要構建全棧應用的開發人員,以及志向高遠、想自創公司的Web開發初學者閱讀。本書詳細說明了如何創建一個能適應各種平臺的CRUD風格的應用。
了解GraphQL查詢數據的簡單流程。
學習API、Web應用和原生應用驗證身份的共同方式。
使用React和StyledC等