所有分类
  • 所有分类
  • 精品课程
  • 课件资料
  • 标准资料
  • 资料手册
  • 图纸模型
  • 解说文案

web开发经典丛书 Redux实战 [美]Marc Garreau 清华大学 2019年版

web开发经典丛书 Redux实战 

作者: [美]Marc Garreau 清华大学 

出版时间:2019年版 

丛编项:Web开发经典丛书 

内容简介 

  ●在现有的 React 应用程序中使用 Redux ●使用 redux-saga 库处理副作用 ●使用异步 action 处理 API ●React 和 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 

资源下载
下载价格10 金币
VIP免费
0
没有账号?注册  忘记密码?

社交账号快速登录