注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计Redux实战

Redux实战

Redux实战

定 价:¥68.00

作 者: [美] 马克·加罗(Marc Garreau) 著,黄金胜,王冬阳,熊建刚 译
出版社: 清华大学出版社
丛编项: Web开发经典丛书
标 签: 暂缺

购买这本书可以去


ISBN: 9787302530336 出版时间: 2019-07-01 包装: 平装
开本: 16 页数: 字数:  

内容简介

  ●在现有的 React 应用程序中使用 Redux ●使用 redux-saga 库处理副作用 ●使用异步 action 处理 API ●React 和 Redux 应用程序的单元测试

作者简介

  Marc Garreau已经使用 Redux 设计并开发了数个不同的客户端应用程序。Will Faurot 能够指导所有技能等级的 Redux 开发人员。

图书目录

目    录
第1章  Redux介绍   1
1.1  什么是状态   2
1.2  什么是Flux   3
1.2.1  action   4
1.2.2  dispatcher   4
1.2.3  store   4
1.2.4  视图   4
1.3  什么是Redux   4
1.3.1  React和Redux   5
1.3.2  3个原则   6
1.3.2  工作流   6
1.4  为什么要用Redux   11
1.4.1  可预测性   11
1.4.2  开发者体验   11
1.4.3  可测试性   11
1.4.4  学习曲线   11
1.4.5  体积   11
1.5  何时应该使用Redux   12
1.6  Redux的备选方案   12
1.6.1  Flux的一些实现   12
1.6.2  MobX   13
1.6.3  GraphQL客户端   14
1.7  本章小结   14
第2章  个Redux应用程序   15
2.1  创建一个任务管理应用程序   16
2.2  使用Create React App   17
2.3  基本的React组件   19
2.4  重温Redux架构   21
2.5  配置Redux store   22
2.5.1  整体和store API   22
2.5.2  创建Redux store   23
2.5.3  tasks reducer   24
2.5.4  默认reducer状态   25
2.6  使用react-redux连接Redux与React   26
2.6.1  添加Provider组件   26
2.6.2  将数据从Redux传递到React组件   27
2.6.3  容器组件和展示型组件   29
2.7  派发action   29
2.8  action创建器   33
2.8.1  使用action创建器   34
2.8.2  action创建器和副作用   35
2.9  使用reducer处理action   36
2.10  练习   38
2.11  解决方案   39
2.11.1  状态下拉菜单   39
2.11.2  派发一个edit action   40
2.11.3  在reducer中处理action   42
2.12  本章小结   43
第3章  调试Redux应用程序   45
3.1  Redux DevTools 介绍   46
3.2  时间旅行调试   47
3.3  使用DevTools监视器可视化变更   48
3.4  实现Redux DevTools   49
3.5  Webpack的作用   51
3.6  模块热替换   52
3.6.1  热加载组件   53
3.6.2  热加载reducer   54
3.6.3  模块热替换的局限性   55
3.7  使用React Hot Loader维持局部组件状态   55
3.8  练习   55
3.9  解决方案   56
3.10  本章小结   57
第4章  使用API   59
4.1  异步action   60
4.2  使用redux-thunk调用异步action   62
4.2.1  从服务器获取任务   62
4.2.2  API客户端   66
4.2.3  视图action和服务器action   67
4.3  将任务保存到服务器   68
4.4  练习   70
4.5  解决方案   71
4.6  加载状态   72
4.6.1  请求生命周期   73
4.6.2  添加加载指示符   74
4.7  错误处理   78
4.8  本章小结   82
第5章  中间件   83
5.1  初窥中间件   84
5.2  中间件的基础知识   85
5.3  日志记录中间件   86
5.3.1  创建日志记录中间件   86
5.3.2  使用applyMiddleware注册中间件   88
5.4  数据分析中间件   89
5.4.1  meta属性   89
5.4.2  添加数据分析中间件   90
5.4.3  中间件的使用场合   93
5.4.4  案例分析:如何不使用中间件   93
5.5  API中间件   95
5.5.1  理想的API   96
5.5.2  概述API中间件   98
5.5.3  发起AJAX调用   100
5.5.4  更新reducer   101
5.5.5  API中间件总结   102
5.6  练习   102
5.7  解决方案   102
5.8  本章小结   105
第6章  处理复杂的副作用   107
6.1  什么是副作用   108
6.2  回顾thunk   109
6.2.1  优势   109
6.2.2  不足   110
6.3  saga介绍   110
6.3.1  优势   111
6.3.2  不足   111
6.4  生成器概述   111
6.4.1  生成器语法   112
6.4.2  迭代器   113
6.4.3  生成器循环   113
6.4.4  使用生成器的原因   114
6.5  实现saga   115
6.5.1  将saga中间件连接至store   115
6.5.2  根saga介绍   116
6.5.3  副作用   118
6.5.4  响应并派发action   118
6.6  处理长时间运行的进程   121
6.6.1  准备数据   121
6.6.2  更新用户界面   122
6.6.3  派发action   122
6.6.4  编写长时间运行的进程   123
6.6.5  处理reducer中的action   124
6.6.6  使用通道   125
6.7  练习   127
6.8  解决方案   127
6.9  其他的副作用管理策略   128
6.9.1  使用async/await异步函数   129
6.9.2  使用redux-promise 处理promise   129
6.9.3  redux-loop   129
6.9.4  redux-observable   130
6.10  本章小结   130
第7章  为组件准备数据   131
7.1  将Redux与React组件解耦   132
7.2  选择器概述   134
7.3  实现搜索   135
7.3.1  搭建UI   136
7.3.2  本地状态与Redux状态   138
7.3.3  派发过滤器action   139
7.3.4  在reducer中处理过滤器action   141
7.3.5  编写自己的个选择器   142
7.4  reselect介绍   144
7.4.1  reselect和memoization   144
7.4.2  reselect与composition   146
7.5  实现reselect   146
7.6  练习   147
7.7  解决方案   148
7.8  本章小结   150
第8章  组织Redux store   151
8.1  如何在Redux中存储数据   152
8.2  规范化数据介绍   154
8.3  使用嵌套数据实现项目   155
8.3.1  概述:请求与渲染项目   156
8.3.2  使用项目数据更新服务器   159
8.3.3  添加和派发fetchProjects   160
8.3.4  更新 reducer   162
8.3.5  更新mapStateToProps和选择器   164
8.3.6  添加项目下拉菜单   165
8.3.7  编辑任务   169
8.3.8  非必要的渲染   170
8.3.9  总结——嵌套数据   172
8.4  规范化项目和任务   172
8.4.1  定义模式   174
8.4.2  更新reducer以处理实体   175
8.4.3  更新选择器   177
8.4.4  创建任务   178
8.4.5  总结——规范化数据   180
8.5  组织其他类型的状态   180
8.6  练习   180
8.7  解决方案   180
8.8  本章小结   182
第9章  测试Redux应用程序   183
9.1  测试工具介绍   184
9.1.1  Jasmine提供了什么   186
9.1.2  Jest提供什么   187
9.1.3  Jest的替代品   188
9.1.4  使用Enzyme进行组件
测试   188
9.2  测试Redux和React的区别   189
9.3  测试action创建器   189
9.3.1  测试同步action创建器   190
9.3.2  测试异步action创建器   191
9.4  测试saga   193
9.5  测试中间件   195
9.6  测试reducer   198
9.7  测试选择器   200
9.8  测试组件   202
9.8.1  测试展示型组件   202
9.8.2  快照测试   204
9.8.3  测试容器组件   206
9.9  练习   210
9.10  解决方案   211
9.11  本章小结   213
第10章  性能   215
10.1  性能评估工具   216
10.1.1  性能时间线   216
10.1.2  react-addons-perf   217
10.1.3  why-did-you-update   217
10.1.4  React开发者工具   218
10.2  React优化   219
10.2.1  shouldComponent-Update   219
10.2.2  PureComponent   220
10.2.3  分页和其他策略   220
10.3  Redux优化   221
10.3.1  连接正确的组件   221
10.3.2  自上而下的方法   222
10.3.3  将其他组件连接到Redux   223
10.3.4  将connect添加到Header和TasksPage   225
10.3.5  mapStateToProps和记忆型选择器   229
10.3.6  connect高级用法的经验法则   230
10.3.7  批量处理action   231
10.4  缓存   233
10.5  练习   234
10.6  解决方案   236
10.7  本章小结   240
第11章  组织Redux代码   241
11.1  Rails风格模式   242
11.1.1  优势   243
11.1.2  劣势   244
11.2  域风格模式   244
11.2.1  优势   246
11.2.2  劣势   246
11.3  ducks模式   246
11.3.1  优势   249
11.3.2  劣势   249
11.4  选择器   249
11.5  saga   249
11.6  样式文件   250
11.7  测试文件   250
11.8  练习和解决方案   250
11.9  本章小结   251
第12章  React之外的Redux   253
12.1  移动Redux:React Native   254
12.1.1  处理副作用   254
12.1.2  网络连接   254
12.1.3  性能   255
12.2  桌面Redux:Electron   255
12.2.1  需要原生桌面应用程序的原因   255
12.2.2  Electron的工作方式   256
12.2.3  引入Redux至Electron   257
12.3  其他Redux绑定   258
12.3.1  Angular   258
12.3.2  Ember   259
12.4  没有框架的Redux   260
12.5  练习和解决方案   260
12.6  本章小结   261
附录  安装   263

本目录推荐