目录
前言 . 1
第1 章 初识React . 7
1.1 坚实的基础 .8
1.2 React 的过去和未来 9
1.3 资源文件 10
1.3.1 资源仓库10
1.3.2 React 开发者工具 10
1.3.3 安装Node.js 12
第2 章 JavaScript 新特性 15
2.1 声明变量 16
2.1.1 const 关键字 16
2.1.2 let 关键字 17
2.1.3 模板字符串 .20
2.2 创建函数 21
2.2.1 函数声明21
2.2.2 函数表达式 .22
2.2.3 默认参数24
2.2.4 箭头函数25
2.3 编译JavaScript 28
2.4 对象和数组 29
2.4.1 析构对象29
2.4.2 析构数组32
2.4.3 对象字面量增强 32
2.4.4 展开运算符 .34
2.5 JavaScript 异步编程 .36
2.5.1 使用fetch 处理简单的promise .37
2.5.2 async/await .38
2.5.3 构建promise 39
2.6 类 40
2.7 ES6 模块 42
第3 章 JavaScript 函数式编程 45
3.1 函数式编程是什么意思 .46
3.2 命令式和声明式 48
3.3 函数式编程基本概念 51
3.3.1 不可变性51
3.3.2 纯函数 54
3.3.3 数据转换57
3.3.4 高阶函数65
3.3.5 递归 66
3.3.6 合成 70
3.3.7 综合应用71
第4 章 React 运行机制 . 77
4.1 页面设置 77
4.2 React 元素 78
4.3 ReactDOM 81
4.4 React 组件 87
第5 章 在React 中使用JSX 95
5.1 使用JSX 创建React 元素.95
5.1.1 JSX 小贴士 .96
5.1.2 使用JSX 映射数组 .98
5.2 Babel 98
5.3 使用JSX 编写菜谱应用 100
5.4 React 片段 .108
5.5 webpack 简介 109
5.5.1 创建项目 111
5.5.2 加载构建包 122
5.5.3 源码映射123
5.5.4 Create React App 124
第6 章 React 状态管理 127
6.1 构建一个星级评价组件 128
6.2 useState 钩子 130
6.3 为提高可重用性而重构 134
6.4 组件树中的状态 .136
6.4.1 沿组件树向下发送状态 .137
6.4.2 沿组件树向上发送交互 .141
6.5 构建表单 .145
6.5.1 使用ref 146
6.5.2 受控组件148
6.5.3 自定义钩子 150
6.5.4 把颜色添加到状态中 152
6.6 React 上下文 .153
6.6.1 把颜色放入上下文 155
6.6.2 使用useContext 获取颜色 157
6.6.3 有状态的上下文供应组件 158
6.6.4 使用上下文自定义钩子 .160
第7 章 使用钩子增强组件 . 165
7.1 useEffect 介绍 165
7.1.1 依赖数组168
7.1.2 深入检查依赖 .173
7.1.3 何时使用useLayoutEffect 180
7.1.4 钩子使用规则 .182
7.1.5 使用useReducer 改进代码 186
7.1.6 使用useReducer 处理复杂的状态 189
7.1.7 提升组件性能 .192
7.1.8 shouldComponentUpdate 和PureComponent 195
7.1.9 何时重构196
第8 章 处理数据 199
8.1 请求数据 .199
8.1.1 随请求发送数据 201
8.1.2 使用fetch 上传文件.202
8.1.3 授权请求202
8.1.4 在本地保存数据 204
8.1.5 处理promise 状态 208
8.2 渲染属性 .210
8.3 虚拟化列表 214
8.3.1 创建useFetch 钩子 219
8.3.2 创建Fetch 组件 .222
8.3.3 处理多个请求 .224
8.3.4 备忘值 225
8.3.5 瀑布式请求 229
8.3.6 限制网络速度 .233
8.3.7 并行请求235
8.3.8 等待值出现 237
8.3.9 取消请求238
8.4 GraphQL 简介 242
8.4.1 GitHub GraphQL API 242
8.4.2 发起一个GraphQL 请求 245
第9 章 Suspense . 253
9.1 错误边界组件 255
9.2 代码分拆 .259
9.2.1 Suspense 组件介绍 262
9.2.2 使用Suspense 加载数据 263
9.2.3 抛出promise 267
9.2.4 构建兼容Suspense 的数据源 272
9.2.5 Fiber 277
第10 章 React 测试 . 281
10.1 ESLint 281
10.2 Prettier 288
10.2.1 在项目中配置Prettier 289
10.2.2 在VSCode 中使用Prettier .291
10.3 对React 应用做类型检查 292
10.3.1 PropTypes 292
10.3.2 Flow 296
10.3.3 TypeScript 301
10.4 测试驱动开发 304
10.5 使用Jest 305
10.6 测试React 组件 311
10.6.1 查询 315
10.6.2 测试事件 .316
10.6.3 代码覆盖度 319
第11 章 React Router 321
11.1 使用React Router 322
11.2 React Router 属性 327
11.3 重定向 332
第12 章 React 服务器端渲染 341
12.1 同构与普适 .342
12.2 服务器端渲染React 345
12.3 使用Next.js 做服务器端渲染 353
12.4 Gatsby 359
12.5 React 未来展望 .361
作者介绍 363
封面介绍 363