web开发经典丛书 Redux实战作者: [美]Marc Garreau 清华大学出版时间:2019年版丛编项: Web开发经典丛书内容简介 ●在现有的 React 应用程序中使用 Redux ●使用 redux-saga 库处理副作用 ●使用异步 action 处理 API ●React 和 Redux 应用程序的单元测试目录目 录第1章 Redux介绍 11.1 什么是状态 21.2 什么是Flux 31.2.1 action 41.2.2 dispatcher 41.2.3 store 41.2.4 视图 41.3 什么是Redux 41.3.1 React和Redux 51.3.2 3个原则 61.3.2 工作流 61.4 为什么要用Redux 111.4.1 可预测性 111.4.2 开发者体验 111.4.3 可测试性 111.4.4 学习曲线 111.4.5 体积 111.5 何时应该使用Redux 121.6 Redux的备选方案 121.6.1 Flux的一些实现 121.6.2 MobX 131.6.3 GraphQL客户端 141.7 本章小结 14第2章 个Redux应用程序 152.1 创建一个任务管理应用程序 162.2 使用Create React App 172.3 基本的React组件 192.4 重温Redux架构 212.5 配置Redux store 222.5.1 整体和store API 222.5.2 创建Redux store 232.5.3 tasks reducer 242.5.4 默认reducer状态 252.6 使用react-redux连接Redux与React 262.6.1 添加Provider组件 262.6.2 将数据从Redux传递到React组件 272.6.3 容器组件和展示型组件 292.7 派发action 292.8 action创建器 332.8.1 使用action创建器 342.8.2 action创建器和副作用 352.9 使用reducer处理action 362.10 练习 382.11 解决方案 392.11.1 状态下拉菜单 392.11.2 派发一个edit action 402.11.3 在reducer中处理action 422.12 本章小结 43第3章 调试Redux应用程序 453.1 Redux DevTools 介绍 463.2 时间旅行调试 473.3 使用DevTools监视器可视化变更 483.4 实现Redux DevTools 493.5 Webpack的作用 513.6 模块热替换 523.6.1 热加载组件 533.6.2 热加载reducer 543.6.3 模块热替换的局限性 553.7 使用React Hot Loader维持局部组件状态 553.8 练习 553.9 解决方案 563.10 本章小结 57第4章 使用API 594.1 异步action 604.2 使用redux-thunk调用异步action 624.2.1 从服务器获取任务 624.2.2 API客户端 664.2.3 视图action和服务器action 674.3 将任务保存到服务器 684.4 练习 704.5 解决方案 714.6 加载状态 724.6.1 请求生命周期 734.6.2 添加加载指示符 744.7 错误处理 784.8 本章小结 82第5章 中间件 835.1 初窥中间件 845.2 中间件的基础知识 855.3 日志记录中间件 865.3.1 创建日志记录中间件 865.3.2 使用applyMiddleware注册中间件 885.4 数据分析中间件 895.4.1 meta属性 895.4.2 添加数据分析中间件 905.4.3 中间件的使用场合 935.4.4 案例分析:如何不使用中间件 935.5 API中间件 955.5.1 理想的API 965.5.2 概述API中间件 985.5.3 发起AJAX调用 1005.5.4 更新reducer 1015.5.5 API中间件总结 1025.6 练习 1025.7 解决方案 1025.8 本章小结 105第6章 处理复杂的副作用 1076.1 什么是副作用 1086.2 回顾thunk 1096.2.1 优势 1096.2.2 不足 1106.3 saga介绍 1106.3.1 优势 1116.3.2 不足 1116.4 生成器概述 1116.4.1 生成器语法 1126.4.2 迭代器 1136.4.3 生成器循环 1136.4.4 使用生成器的原因 1146.5 实现saga 1156.5.1 将saga中间件连接至store 1156.5.2 根saga介绍 1166.5.3 副作用 1186.5.4 响应并派发action 1186.6 处理长时间运行的进程 1216.6.1 准备数据 1216.6.2 更新用户界面 1226.6.3 派发action 1226.6.4 编写长时间运行的进程 1236.6.5 处理reducer中的action 1246.6.6 使用通道 1256.7 练习 1276.8 解决方案 1276.9 其他的副作用管理策略 1286.9.1 使用async/await异步函数 1296.9.2 使用redux-promise 处理promise 1296.9.3 redux-loop 1296.9.4 redux-observable 1306.10 本章小结 130第7章 为组件准备数据 1317.1 将Redux与React组件解耦 1327.2 选择器概述 1347.3 实现搜索 1357.3.1 搭建UI 1367.3.2 本地状态与Redux状态 1387.3.3 派发过滤器action 1397.3.4 在reducer中处理过滤器action 1417.3.5 编写自己的个选择器 1427.4 reselect介绍 1447.4.1 reselect和memoization 1447.4.2 reselect与composition 1467.5 实现reselect 1467.6 练习 1477.7 解决方案 1487.8 本章小结 150第8章 组织Redux store 1518.1 如何在Redux中存储数据 1528.2 规范化数据介绍 1548.3 使用嵌套数据实现项目 1558.3.1 概述:请求与渲染项目 1568.3.2 使用项目数据更新服务器 1598.3.3 添加和派发fetchProjects 1608.3.4 更新 reducer 1628.3.5 更新mapStateToProps和选择器 1648.3.6 添加项目下拉菜单 1658.3.7 编辑任务 1698.3.8 非必要的渲染 1708.3.9 总结——嵌套数据 1728.4 规范化项目和任务 1728.4.1 定义模式 1748.4.2 更新reducer以处理实体 1758.4.3 更新选择器 1778.4.4 创建任务 1788.4.5 总结——规范化数据 1808.5 组织其他类型的状态 1808.6 练习 1808.7 解决方案 1808.8 本章小结 182第9章 测试Redux应用程序 1839.1 测试工具介绍 1849.1.1 Jasmine提供了什么 1869.1.2 Jest提供什么 1879.1.3 Jest的替代品 1889.1.4 使用Enzyme进行组件测试 1889.2 测试Redux和React的区别 1899.3 测试action创建器 1899.3.1 测试同步action创建器 1909.3.2 测试异步action创建器 1919.4 测试saga 1939.5 测试中间件 1959.6 测试reducer 1989.7 测试选择器 2009.8 测试组件 2029.8.1 测试展示型组件 2029.8.2 快照测试 2049.8.3 测试容器组件 2069.9 练习 2109.10 解决方案 2119.11 本章小结 213第10章 性能 21510.1 性能评估工具 21610.1.1 性能时间线 21610.1.2 react-addons-perf 21710.1.3 why-did-you-update 21710.1.4 React开发者工具 21810.2 React优化 21910.2.1 shouldComponent-Update 21910.2.2 PureComponent 22010.2.3 分页和其他策略 22010.3 Redux优化 22110.3.1 连接正确的组件 22110.3.2 自上而下的方法 22210.3.3 将其他组件连接到Redux 22310.3.4 将connect添加到Header和TasksPage 22510.3.5 mapStateToProps和记忆型选择器 22910.3.6 connect高级用法的经验法则 23010.3.7 批量处理action 23110.4 缓存 23310.5 练习 23410.6 解决方案 23610.7 本章小结 240第11章 组织Redux代码 24111.1 Rails风格模式 24211.1.1 优势 24311.1.2 劣势 24411.2 域风格模式 24411.2.1 优势 24611.2.2 劣势 24611.3 ducks模式 24611.3.1 优势 24911.3.2 劣势 24911.4 选择器 24911.5 saga 24911.6 样式文件 25011.7 测试文件 25011.8 练习和解决方案 25011.9 本章小结 251第12章 React之外的Redux 25312.1 移动Redux:React Native 25412.1.1 处理副作用 25412.1.2 网络连接 25412.1.3 性能 25512.2 桌面Redux:Electron 25512.2.1 需要原生桌面应用程序的原因 25512.2.2 Electron的工作方式 25612.2.3 引入Redux至Electron 25712.3 其他Redux绑定 25812.3.1 Angular 25812.3.2 Ember 25912.4 没有框架的Redux 26012.5 练习和解决方案 26012.6 本章小结 261附录 安装 263 上一篇: C语言非常道 李忠 2019年版 下一篇: 大话Python机器学习 张居营 2019年版