編輯推薦
本書旨在幫你掌握Facebook的開源技術React,迅速建立富Web應用,構建組件並將其組織成可維護的大型應用程序。
解開Web應用開發之謎,從瞭解React基本原理開始。
* 設置React並編寫第1個Hello World應用
* 創建並使用自定義React組件以及通用DOM組件
* 構建一個可以編輯、排序、搜索和導齣內容的數據錶格組件
* 使用JSX語法擴展作為調用函數的替代選擇
* 設置一個幫你集中注意力於React上的簡單構建過程
* 構建一個可以將數據存儲在客戶端的完整自定義應用
* 在應用規模增長時使用ESLint、Flow和Jest等工具檢查並測試代碼
* 使用Flux管理組件間的通信
內容簡介
本書是React入門書。前3章介紹如何從空白的HTML頁麵開始構建應用。第4章介紹JSX語法。從第5章開始,你會學習到在實際開發中可能用到的一些附加工具。介紹的例子包括JavaScript打包工具、單元測試、語法檢查、類型、在應用中組織數據流以及不可變數據。
作者簡介
Stoyan Stefanov Facebook開發工程師,圖像優化工具smush.it的作者,性能優化工具YSlow2.0的架構師。曾多次在Velocity等技術大會上發錶過演講。另著有《JavaScript模式》和《JavaScript麵嚮對象編程指南》,還為《高性能網站建設進階指南》和《高性能JavaScript》貢獻過內容。個人站點是http://phpied.com。
張俊達 畢業於華南理工大學,前端開發工程師,現任職於迅雷,主要負責移動Web開發工作。關注前端領域的新技術,樂於分享。
目錄
第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 添加內容 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.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.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
第8章 Flux 165
8.1 理念 166
8.2 迴顧Whinepad 166
8.3 Store 167
8.4 Action 175
8.5 Flux迴顧181
8.6 immutable 182
8.6.1 immutable存儲數據 183
8.6.2 immutable數據操作 184
關於作者 187
關於封麵 187
React快速上手開發 下載 mobi epub pdf txt 電子書