內容提要
Facebook的開源框架React.js,基於Virtual DOM重新定義了用戶界面的開發方式,徹底革新了大家對前端框架的認識,將PHP風格的開發方式遷移到客戶端套用開發。其優勢在於可以與各種類庫、框架搭配使用。《React(第2版):引領未來的用戶界面開發框架》由多位一線專家精心撰寫,採用全程實例介紹和剖析了React.js的方方面面,適合廣大前端開發者、設計人員,以及所有對未來技術趨勢感興趣者閱讀。《React(第2版):引領未來的用戶界面開發框架》前版作為React首作推出之後,React生態繼續蓬勃發展,技術及社區都在不斷推陳出新。《React(第2版):引領未來的用戶界面開發框架》諸位專家作者適時推出新版,全面更新示例,用 ES6重寫代碼,摒棄社區棄用範式,新增無狀態組件、不可變數據、Redux等熱點內容。閱讀《React(第2版):引領未來的用戶界面開發框架》書,不但可以夯實 React開發基礎,更能全方位緊跟整個React生態!
目錄
推薦序1 III
推薦序2 V
推薦序3 VII
前言 IX
第 1 章?React 簡介 1
背景介紹 1
本書概覽 3
Component的創建和複合 3
進階 5
React工具 6
React實踐 6
第 2 章?JSX 8
什麼是JSX 9
使用JSX的好處 10
更加熟悉 10
更加語義化 10
更加直觀 11
關注點分離 12
複合組件 12
定義一個自定義組件 12
使用動態值 13
子節點 14
JSX與HTML有何不同 16
屬性 16
條件判斷 17
非DOM屬性 19
事件 21
注釋 22
特殊屬性 23
樣式 23
沒有JSX的React 24
創建React元素 24
延伸閱讀及參考引用 25
JSX官方規範 25
第 3 章?組件的生命周期 26
生命周期方法 26
實例化 27
存在期 27
銷毀&清理期 27
實例化 27
componentWillMount 28
render 28
componentDidMount 29
存在期 30
componentWillReceiveProps 30
shouldComponentUpdate 30
componentWillUpdate 31
componentDidUpdate 31
銷毀&清理期 32
componentWillUnmount 32
反模式:把計算後的值賦給state 32
總結 33
第 4 章?數據流 34
Props 35
PropTypes 36
defaultProps 37
State 37
放在state和props的各是哪些部分 40
無狀態的函式式組件 40
總結 41
第 5 章?事件處理 42
綁定事件處理器 43
事件和狀態 44
根據狀態進行渲染 44
更新狀態 45
狀態沒有“更新”! 46
事件對象 47
總結 48
第 6 章?組件的複合 49
擴展HTML 50
組件複合的例子 50
組裝HTML 51
追蹤狀態 53
整合到父組件當中 54
父組件與子組件的關係 56
總結 59
第 7 章?高階組件和Mixins 60
簡單的例子 60
常見使用場景 63
總結 63
第 8 章?DOM操作 64
訪問受控的DOM節點 65
在組件內部查找DOM節點 66
整合非React類庫 67
侵入式外掛程式 70
總結 72
第 9 章?表單 73
無約束的組件 74
約束組件 76
表單事件 78
Label 79
文本框和 Select 79
複選框和單選框 82
表單元素的name屬性 84
多個表單元素與change處理器 86
自定義表單組件 89
Focus 93
可用性 93
把要求傳達清楚 94
不斷地反饋 94
迅速回響 94
符合用戶的預期 95
可訪問 95
減少用戶的輸入 96
總結 97
第 10 章?動畫 98
CSS漸變組 99
給漸變class添加樣式 99
漸變生命周期 100
使用漸變組的隱患 101
間隔渲染 101
使用requestAnimationFrame實現間隔渲染 102
使用setTimeout實現間隔渲染 104
彈簧動畫 105
總結 106
第 11 章?性能最佳化 107
shouldComponentUpdate 107
鍵(key) 109
總結 111
第 12 章?服務端渲染 112
渲染函式 113
React.renderToString 113
React.renderToStaticMarkup 114
用React.renderToString還是用React.renderToStaticMarkup 114
服務端組件生命周期 115
設計組件 116
異步狀態 118
同構路由 121
單例、實例及上下文 121
總結 122
第 13 章?開發工具 123
構建工具 123
Browserify 124
建立一個Browserify項目 124
對代碼做出修改 126
Watchify 127
構建 127
Webpack 127
Webpack與React 128
調試工具 131
基礎工具 131
總結 133
第 14 章?測試 134
上手 135
測試的類型 135
工具 136
使用Jest和Enzyme測試React組件 136
編寫組件的內容的斷言 136
測試組件的方法和DOM事件 143
編寫子組件的斷言 144
總結 147
第 15 章?架構模式 148
路由 149
react-router 150
Flux 152
數據流 152
Flux各個部分 153
Dispatcher 153
Action 154
Store 154
控制視圖 155
管理多個Store 156
總結 161
第 16 章?不可變性 162
性能優勢 162
性能消耗 163
架構優勢 164
使用Immutability Helpers Addon 164
使用seamless-immutable 166
使用Immutable.js 167
Immutable.Map 168
Immutable.Vector 168
總結 169
第 17 章?其他使用場景 170
桌面套用 171
遊戲 172
電子郵件 177
繪圖 183
總結 186