譯者序 xiii
前言 xv
第1章 Hello World 1
1.1 設置 1
1.2 Hello React World 2
1.3 剛纔發生瞭什麼 4
1.4 React.DOM.* 4
1.5 特殊DOM屬性 7
1.6 React DevTools瀏覽器擴展 8
1.7 下一步:自定義組件 9
第2章 組件的生命周期 10
2.1 基礎 10
2.2 屬性 12
2.3 propTypes 13
2.4 state 16
2.5 帶狀態的文本框組件 16
2.6 關於DOM事件的說明 19
2.6.1 傳統的事件處理 20
2.6.2 React的事件處理 21
2.7 props與state 21
2.8 在初始化state時使用props:一種反模式 22
2.9 從外部訪問組件 22
2.10 中途改變屬性 24
2.11 生命周期方法 25
2.12 生命周期示例:輸齣日誌記錄 26
2.13 生命周期示例:使用mixin 28
2.14 生命周期示例:使用子組件 30
2.15 性能優化:避免組件更新 32
2.16 PureRenderMixin 34
第3章 Excel:一個齣色的錶格組件 37
3.1 構造數據 37
3.2 錶頭循環 38
3.3 消除控製颱的警告信息 40
3.4 添加<td>內容 41
3.5 排序 44
3.6 排序的視覺提示 46
3.7 編輯數據 47
3.7.1 可編輯單元格 48
3.7.2 輸入字段的單元格 50
3.7.3 保存 50
3.7.4 結論與虛擬DOM Diff算法 51
3.8 搜索 52
3.8.1 狀態與界麵 54
3.8.2 篩選內容 55
3.8.3 如何改進搜索功能 57
3.9 即時迴放 58
3.9.1 如何改進迴放功能 59
3.9.2 有另一種實現方法嗎 59
3.10 下載錶格數據 59
第4章 JSX 62
4.1 Hello JSX 62
4.2 轉譯JSX 63
4.3 Babel 64
4.4 客戶端 64
4.5 關於JSX轉換 66
4.6 在JSX中使用JavaScript 68
4.7 在JSX中使用空格 69
4.8 在JSX中使用注釋 70
4.9 HTML實體 71
4.10 展開屬性 73
4.11 在JSX中返迴多個節點 75
4.12 JSX和HTML的區彆 77
4.12.1 class和for屬性不能用瞭嗎 77
4.12.2 style屬性值是一個對象 77
4.12.3 閉閤標簽 78
4.12.4 用駝峰法命名屬性 78
4.13 JSX 和錶單 78
4.13.1 onChange處理器 78
4.13.2 value和defaultValue的區彆 79
4.13.3 <textarea>的值 79
4.13.4 <select>的值 80
4.14 使用JSX實現Excel組件 82
第5章 為應用開發做準備 83
5.1 一個模闆應用 83
5.1.1 文件和目錄 84
5.1.2 index.html 85
5.1.3 CSS 86
5.1.4 JavaScript 86
5.1.5 更現代化的JavaScript 86
5.2 安裝必備工具 89
5.2.1 Node.js 90
5.2.2 Browserify 90
5.2.3 Babel 90
5.2.4 React相關 91
5.3 開始構建 91
5.3.1 轉譯JavaScript 91
5.3.2 打包JavaScript 92
5.3.3 打包CSS 92
5.3.4 大功告成 92
5.3.5 Windows版本 93
5.3.6 在開發過程中構建 93
5.4 發布 94
5.5 更進一步 95
第6章 構建應用 96
6.1 Whinepad v. 0.0.1 96
6.1.1 基本設置 97
6.1.2 開始編寫代碼 97
6.2 組件 99
6.2.1 設置 99
6.2.2 組件發現工具 100
6.2.3 <Button>組件 101
6.2.4 Button.css 102
6.2.5 Button.js 103
6.2.6 錶單 106
6.2.7 <Suggest> 106
6.2.8 <Rating>組件 109
6.2.9 <FormInput>“工廠組件” 112
6.2.10 <Form> 115
6.2.11 <Actions> 117
6.2.12 對話框 119
6.3 應用配置 121
6.4 <Excel>:改進的新版本 123
6.5 <Whinepad> 131
6.6 總結 134
第7章 lint、Flow、測試與復驗 136
7.1 package.json 136
7.1.1 配置Babel 137
7.1.2 腳本 137
7.2 ESLint138
7.2.1 安裝 138
7.2.2 運行 138
7.2.3 規則列錶 140
7.3 Flow 140
7.3.1 安裝 141
7.3.2 運行 141
7.3.3 注冊類型檢查 141
7.3.4 修復<Button> 142
7.3.5 app.js 144
7.3.6 關於props和state類型檢查的更多內容145
7.3.7 導齣/導入類型 147
7.3.8 類型轉換 148
7.3.9 invariant 148
7.4 測試 150
7.4.1 安裝 150
7.4.2 首個測試 151
7.4.3 首個React測試 152
7.4.4 測試<Button>組件 153
7.4.5 測試<Actions>組件 157
7.4.6 更多模擬交互 159
7.4.7 測試完整的交互 160
7.4.8 代碼覆蓋率 163
第8章 Flux 165
8.1 理念 166
8.2 迴顧Whinepad 166
8.3 Store 167
8.3.1 Store事件 169
8.3.2 在<Whinepad>中使用Store 170
8.3.3 在<Excel>中使用Store 173
8.3.4 在<Form>中使用Store 174
8.3.5 界定 174
8.4 Action 175
8.4.1 CRUD Action 175
8.4.2 搜索與排序 176
8.4.3 在<Whinepad>中使用Action 178
8.4.4 在<Excel>中使用Action 179
8.5 Flux迴顧181
8.6 immutable 182
8.6.1 immutable存儲數據 183
8.6.2 immutable數據操作 184
關於作者 187
關於封麵 187
· · · · · · (
收起)