第一部分 基础篇 1
第1章 技术简介 2
React 2
Redux 3
Node与Universal渲染 4
Babel 5
Webpack 5
总结 6
第2章 在Node.js中运行React 7
例子 7
编写React组件 7
在Node.js 中渲染组件 8
使用 Babel编译运行Node.js程序 9
Require Hook简介 9
使用Require Hook的步骤 9
总结 10
第3章 在浏览器中运行React 11
例子 11
组件复用 11
在浏览器中渲染React组件 12
使用Webpack打包编译 12
在浏览器中运行 14
总结 14
第4章 开发服务器和热替换 15
例子 15
安装 16
配置Babel 16
使用react-hmre预设 16
react-hmre的功能 17
配置Webpack 18
配置Express服务器 21
总结 22
第5章 React的创新语法:JSX 24
例子 24
JSX简介 24
JSX常用语法 25
类似HTML 25
JavaScript表达式 26
样式 27
注释 27
数组 27
HTML标签vs.React组件 28
总结 29
第6章 React的数据载体:state、props与context 30
例子 30
State 31
Props 32
使用props 33
验证props 33
组合使用state与props 35
Context 36
使用props传递数据 36
使用context传递数据 38
Props与context的适用场景 40
在React开发者工具中查看 41
总结 42
第7章 React的两个对象:ReactElement与组件实例 43
例子 43
ReactElement 44
JSX中的闭合标签是ReactElement 44
ReactElement是什么 44
ReactElement的两种类型 45
React组件的渲染流程 45
组件实例 46
组件实例简介 46
组件、ReactElement与组件实例的区别 47
组件实例的生灭:生命周期函数 48
React组件中的this 49
总结 55
第8章 初识 Redux 56
例子 56
Action 56
Reducer 57
定义 57
纯函数 58
不能修改参数state 58
Store 60
职能 60
创建 60
获取与监听 60
发起action 61
总结 62
第9章 Action创建函数与Redux Thunk中间件 64
例子 64
Action创建函数 65
编写 65
发起 65
意义 66
Redux Thunk中间件 66
功能 66
安装激活 67
总结 69
第二部分 进价篇 71
第10章 React与Redux的连接:手动连接 72
例子 72
手动连接的步骤 73
编写React组件 73
编写Redux 75
将Redux手动连接到React组件 76
手动连接的缺点 77
总结 77
第11章 React与Redux的连接:使用react-redux连接 78
例子 78
连接步骤 78
多种写法 81
连接原理 85
Provider工作原理 85
connect工作原理 86
展示组件与容器组件 86
总结 87
第12章 实现撤销/重做 88
例子 88
撤销/重做 88
Redux开发者工具 92
安装 92
使用 93
Redux并不“低效” 97
总结 98
第13章 测试 99
例子 99
测试工具 100
Mocha 100
Enzyme 101
Expect 102
测试action创建函数 103
测试React组件 106
测试容器组件 108
测试reducer纯函数 110
运行测试脚本 111
总结 112
第14章 Redux的全局状态与React组件的内部状态 114
例子 114
全局状态与内部状态的定义 114
全局状态完全替代了内部状态? 115
全局状态与内部状态的适用场景 118
总结 118
第15章 React与Redux中的数组处理 119
例子 119
reduce() 119
概述 119
语法 120
示例 120
filter() 121
概述 121
语法 121
示例 122
map() 122
概述 122
语法 122
示例 123
every() 123
概述 123
语法 123
示例 124
some() 124
概述 124
语法 124
示例 125
展开运算符 125
概述 125
语法 125
示例 125
总结 126
第16章 Redux的大舞台:异步 127
例子 127
JavaScript事件驱动编程 127
Promise 129
Redux中的异步 132
异步action创建函数 133
异步请求前后的state变化 133
State tree结构 135
查看state tree 136
如何构建state tree 136
异步与变化 139
准备工作 139
追踪异步与变化 143
总结 145
第17章 自定义Redux中间件 147
例子 147
中间件的功能 147
中间件的编写 148
中间件的执行 149
自定义API中间件 151
总结 154
第18章 Universal渲染 155
例子 155
公用一套代码 156
服务端渲染 156
客户端渲染 158
总结 159
第三部分 拓展篇 161
第19章 Universal渲染神器:Webpack同构工具 162
例子 162
Webpack同构工具的功能 163
服务端调用 164
客户端调用 165
真实场景 167
配置服务器的入口 167
独立开发服务器 168
配置Webpack 169
配置Webpack同构工具 171
在服务端和客户端使用require() 173
总结 174
第20章 多页面的实现:路由 175
例子 175
路由也是组件 176
路由匹配 177
使用Link和IndexLink导航 178
服务端路由 179
总结 181
第21章 多页面下的异步操作 182
例子 182
redux-amrc 182
功能 183
配置 184
使用 184
Action与state 185
API 186
多页面下的异步操作 187
编写测试API 187
预载数据 188
手动加载数据 191
操作数据 192
总结 193
第22章 使用Bootstrap 194
例子 194
bootstrap-loader 195
基本用法 195
配置 196
PostCSS与Autoprefixer 200
简介 200
用法 201
React-Bootstrap 202
总结 204
第四部分 实战篇 205
第23章 搭建大型项目 206
例子 206
开发服务器 209
开发环境下的Webpack配置 209
Webpack同构工具的配置 212
独立的开发服务器 213
启动开发服务器 214
前端服务器 215
配置前端服务器 215
使用组件渲染HTML页面 218
启动前端服务器 221
API服务器 222
配置API服务器 222
启动API服务器 223
生产环境下的构建编译 224
编译运行Node.js 224
生产环境下的Webpack配置 225
公用代码 229
工具集 229
路由与页面 231
质量保证 235
测试 235
Airbnb编码规范 239
去毛机 246
EditorConfig 248
总结 248
第24章 表单 250
例子 250
高阶组件ReduxForm 251
设置 252
简单表单 253
同步验证表单 256
异步失焦验证表单 258
提交表单到服务器 260
总结 264
第25章 图表与表格 265
例子 265
图表组件 265
表格组件 269
从服务器获取数据 272
总结 275
第26章 用户认证 277
例子 277
编写认证API 279
Express-session中间件 279
加载当前认证状态 280
登录与登出 280
API权限保护 281
发送cookie 282
编写用于认证的action创建函数 283
登录页面和导航栏 285
前端路由保护 290
总结 291
第27章 部署 292
例子 292
Heroku平台 293
安装工具并登录 293
准备程序 293
部署程序 294
其他操作 295
持续集成 296
与生产相关的问题 298
总结 299
第28章 其他资源 300
在线文档 300
参与社区活动 301