第1章 React与前端 1
1.1 前端简史 1
1.2 React是什么 3
1.3 React家族 4
1.4 本章小结 7
第2章 深入浅出React 8
2.1 组件 8
2.2 组件与系统 11
2.3 神奇的JSX 12
2.4 组件的生命周期 14
2.5 组件的属性和状态 17
2.6 组件和事件 22
2.7 组件通信 24
2.8 组件的抽象与复用 32
2.9 命令式与DOM 38
2.10 本章小结 41
第3章 Redux应用架构基础 42
3.1 Redux究竟是什么 42
3.2 Redux设计哲学 44
3.3 函数式编程和纯函数 48
3.4 Redux基本使用和实践 51
3.5 Redux开发基础实例 58
3.6 reducer编写关键:不可变性 62
3.7 Redux中间件和异步 73
3.8 Redux与React 78
3.9 实现计数器的四种方式 85
3.10 完成一个工程化实例 98
3.11 本章小结 113
第4章 深入理解Redux 114
4.1 Redux源码探索——store的实现 114
4.2 Redux源码探索——combineReducers的实现 118
4.3 dispatch的改造——实现记录日志 121
4.4 dispatch的改造——识别Promise 124
4.5 糅合多种dispatch 126
4.6 Redux源码探索——中间件的秘密 131
4.7 再谈Redux设计思想 136
4.8 react-redux究竟是什么 142
4.9 本章小结 145
第5章 揭秘React同构应用 146
5.1 前后端架构设计和服务端渲染概念 146
5.2 同构应用 150
5.3 使用React和Redux实现同构应用 152
5.4 React 16在服务端渲染上的惊喜 157
5.5 同构项目实战:基于Node.js的“渐进式”流渲染 158
5.6 使用Next.js实现同构应用 168
5.7 使用Next.js实现同构应用 172
5.8 本章小结 173
第6章 深入理解React技术内幕与生态社区 184
6.1 React组件的组合和复用——高阶组件 184
6.2 高阶组件和render prop 193
6.3 React组件的组合和复用——Function as Child Component 198
6.4 React组件的组合和复用——Children API 203
6.5 React“轮子”是怎样设计的 209
6.6 setState异步带来的讨论和思考 216
6.7 React组件和React element到底是什么 221
6.8 实现一个简易的React库 227
6.9 引入Redux的必要性及利弊 239
6.10 如何设计并应用Redux connect 243
6.11 使用selector实现最佳实践 248
6.12 Redux store数据结构扁平化及在Twitter中的实践 255
6.13 React state和Redux state的选取原则 266
6.14 本章小结 267
第7章 单页面应用代码分割 269
7.1 React和代码分割 269
7.2 Redux reducer层面代码分割 278
7.3 代码分割工程实例 283
7.4 本章小结 288
第8章 React应用性能优化 289
8.1 React应用性能的秘密 289
8.2 提升React应用性能的建议 295
8.3 使用PureComponent保证开发性能 302
8.4 Redux中间件和Web Worker 308
8.5 本章小结 311