內容簡介
本書共分為12章,通過介紹React中有價值的設計模式,展示如何將設計模式和最佳實踐套用於現實的新項目和已有項目中。主要內容包括幫助讀者理解React的基本概念,學習編寫整潔、可維護的代碼;最佳化React組件,使套用擁有更快的速度和回響性;介紹如何有效地編寫測試,避免反模式,開源組件並對React生態系統做貢獻。
圖書目錄
第 1章 React基礎 1
1.2 React元素 3
1.3 忘掉所學的一切 5
1.4 常見誤解 7
1.5 小結 9
第 2章 整理代碼 10
2.1 JSX 10
2.1.1 Babel 11
2.1.2 Hello,World! 12
2.1.3 DOM元素與React組件 13
2.1.4 屬性 13
2.1.5 子元素 13
2.1.6 JSX與HTML的區別 14
2.1.7 展開屬性 17
2.1.8 JavaScript模板 17
2.1.9 常見模式 17
2.2 ESLint 25
2.2.1 安裝 25
2.2.2 配置 25
2.2.3 React外掛程式 28
2.2.4 Airbnb的配置 29
2.3 函式式編程基礎 30
2.3.1 一等對象 30
2.3.2 純粹性 31
2.3.3 不可變性 31
2.3.4 柯里化 32
2.3.5 組合 33
2.3.6 函式式編程與UI 33
2.4 小結 33
第3章 開發真正可復用的組件 34
3.1 創建類 34
3.1.1 createClass工廠方法 35
3.1.2 繼承React.Component 35
3.1.3 主要區別 36
3.1.4 無狀態函式式組件 40
3.2 狀態 42
3.2.1 外部庫 43
3.2.2 工作原理 43
3.2.3 異步 44
3.2.4 React lumberjack 45
3.2.5 使用狀態 45
3.3 prop類型 48
3.4 可復用組件 51
3.5 可用的風格指南 54
3.6 小結 58
第4章 組合一切 59
4.1 組件間的通信 59
4.2 容器組件與表現組件模式 62
4.3 mixin 67
4.4 高階組件 69
4.5 recompose 72
4.6 函式子組件 76
4.7 小結 78
第5章 恰當地獲取數據 79
5.1 數據流 79
5.1.1 子組件與父組件的通信(回調函式) 81
5.1.2 公有父組件 82
5.2 數據獲取 83
5.3 react-refetch 88
5.4 小結 92
第6章 為瀏覽器編寫代碼 93
6.1 表單 93
6.1.1 自由組件 94
6.1.2 受控組件 98
6.1.3 JSON schema 100
6.2 事件 102
6.3 ref 104
6.4 動畫 108
6.5 可擴展矢量圖形 110
6.6 小結 113
第7章 美化組件 114
7.1 CSS in JavaScript 114
7.2 行內樣式 116
7.3 Radium 120
7.4 CSS模組 124
7.4.1 Webpack 124
7.4.2 搭建項目 124
7.4.3 局部作用域的CSS 126
7.4.4 原子級CSS模組 131
7.4.5 React CSS模組 132
7.5 Styled Component 133
7.6 小結 136
第8章 服務端渲染的樂趣與益處 137
8.1 通用套用 137
8.2 使用服務端渲染的原因 138
8.2.1 SEO 138
8.2.2 通用代碼庫 139
8.2.3 性能更強 140
8.2.4 不要低估複雜度 140
8.3 基礎示例 141
8.4 數據獲取示例 146
8.5 Next.js 149
8.6 小結 151
第9章 提升套用性能 153
9.1 一致性比較與key屬性 153
9.2 最佳化手段 158
9.2.1 是否要更新組件 158
9.2.2 無狀態函式式組件 160
9.3 常用解決方案 160
9.3.1 why-did-you-update 161
9.3.2 在渲染方法中創建函式 162
9.3.3 props常量 165
9.3.4 重構與良好設計 167
9.4 工具與庫 172
9.4.1 不可變性 172
9.4.2 性能監控工具 173
9.4.3 Babel外掛程式 174
9.5 小結 174
第 10章 測試與調試 176
10.1 測試的好處 176
10.2 用Jest輕鬆測試JavaScript 178
10.3 靈活的測試框架Mocha 184
10.4 React JavaScript測試工具 187
10.5 真實測試示例 189
10.6 React組件樹快照測試 195
10.7 代碼覆蓋率工具 198
10.8 常用測試方案 199
10.8.1 測試高階組件 199
10.8.2 頁面對象模式 203
10.9 Reactkai發者工具 206
10.10 React錯誤處理 207
10.11 小結 209
第 11章 需要避免的反模式 210
11.1 用prop初始化狀態 210
11.2 修改狀態 212
11.3 將數組索引作為key 215
11.4 在DOM元素上展開props對象 218
11.5 小結 219
第 12章 未來的行動 220
12.1 為React做貢獻 220
12.2 分發代碼 222
12.3 發布npm包 224
12.4 小結 225