We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
《深入浅出 React 和 Redux》 - Douban
前言
第 1 章 React 新的前端思维方式 1 1.1 初始化一个 React 项目 1 1.2 增加一个新的 React 组件 3 1.2.1 JSX6 1.2.2 JSX 是进步还是倒退 7 1.3 分解 React 应用 8 1.4 React 的工作方式 10 1.4.1 jQuery 如何工作 10 1.4.2 React 的理念 11 1.4.3 Virtual DOM12 1.4.4 React 工作方式的优点 13 1.5 本章小结 14
第 2 章 设计高质量的 React 组件 16 2.1 易于维护组件的设计要素 16 2.2 React 组件的数据 17 2.2.1 React 的 prop18 2.2.2 React 的 state22 2.2.3 prop 和 state 的对比 24 2.3 组件的生命周期 25 2.3.1 装载过程 25 2.3.2 更新过程 30 2.3.3 卸载过程 34 2.4 组件向外传递数据 34 2.5 React 组件 state 和 prop 的局限 37 2.6 本章小结 39
第 3 章 从 Flux 到 Redux 40 3.1 Flux40 3.1.1 MVC 框架的缺陷 41 3.1.2 Flux 应用 43 3.1.3 Flux 的优势 53 3.1.4 Flux 的不足 54 3.2 Redux56 3.2.1 Redux 的基本原则 56 3.2.2 Redux 实例 59 3.2.3 容器组件和傻瓜组件 64 3.2.4 组件 Context67 3.2.5 React-Redux71 3.3 本章小结 73
第 4 章 模块化 React 和 Redux 应用 75 4.1 模块化应用要点 75 4.2 代码文件的组织方式 76 4.2.1 按角色组织 76 4.2.2 按功能组织 78 4.3 模块接口 79 4.4 状态树的设计 81 4.4.1 一个状态节点只属于一个模块 82 4.4.2 避免冗余数据 82 4.4.3 树形结构扁平 83 4.5 Todo 应用实例 83 4.5.1 Todo 状态设计 84 4.5.2 action 构造函数 86 4.5.3 组合 reducer87 4.5.4 Todo 视图 90 4.5.5 样式 98 4.5.6 不使用 ref99 4.6 开发辅助工具 100 4.6.1 Chrome 扩展包 100 4.6.2 redux-immutable-state-invariant 辅助包 101 4.6.3 工具应用 101 4.7 本章小结 103
第 5 章 React 组件的性能优化 105 5.1 单个 React 组件的性能优化 105 5.1.1 发现浪费的渲染时间 106 5.1.2 性能优化的时机 107 5.1.3 React-Redux 的 should-ComponentUpdate 实现 108 5.2 多个 React 组件的性能优化 115 5.2.1 React 的调和(Reconciliation)过程 116 5.2.2 Key 的用法 120 5.3 用 reselect 提高数据获取性能 122 5.3.1 两阶段选择过程 123 5.3.2 范式化状态树 125 5.4 本章小结 127
第 6 章 React 高级组件 129 6.1 高阶组件 129 6.1.1 代理方式的高阶组件 132 6.1.2 继承方式的高阶组件 136 6.1.3 高阶组件的显示名 139 6.1.4 曾经的 React Mixin139 6.2 以函数为子组件 140 6.2.1 实例 CountDown142 6.2.2 性能优化问题 145 6.3 本章小结 146
第 7 章 Redux 和服务器通信 147 7.1 React 组件访问服务器 147 7.1.1 代理功能访问 API148 7.1.2 React 组件访问服务器的生命周期 150 7.1.3 React 组件访问服务器的优缺点 153 7.2 Redux 访问服务器 154 7.2.1 redux-thunk 中间件 154 7.2.2 异步 action 对象 156 7.2.3 异步操作的模式 157 7.2.4 异步操作的中止 163 7.3 Redux 异步操作的其他方法 165 7.3.1 如何挑选异步操作方式 165 7.3.2 利用 Promise 实现异步操作 167 7.4 本章小结 167
第 8 章 单元测试 168 8.1 单元测试的原则 168 8.2 单元测试环境搭建 170 8.2.1 单元测试框架 170 8.2.2 单元测试代码组织 172 8.2.3 辅助工具 173 8.3 单元测试实例 175 8.3.1 action 构造函数测试 175 8.3.2 异步 action 构造函数测试 176 8.3.3 reducer 测试 178 8.3.4 无状态 React 组件测试 178 8.3.5 被连接的 React 组件测试 179 8.4 本章小结 180
第 9 章 扩展 Redux182 9.2 中间件 182 9.1.1 中间件接口 183 9.1.2 使用中间件 186 9.1.3 Promise 中间件 187 9.1.4 中间件开发原则 190 9.2 Store Enhancer 191 9.2.1 增强器接口 191 9.2.2 增强器实例 reset192 9.3 本章小结 194
第 10 章 动画 195 10.1 动画的实现方式 195 10.1.1 CSS3 方式 195 10.1.2 脚本方式 197 10.2 ReactCSSTransitionGroup199 10.2.1 Todo 应用动画 200 10.2.2 ReactCSSTransitionGroup 规则 202 10.3 React-Motion 动画库 205 10.3.1 React-Motion 的设计原则 205 10.3.2 Todo 应用动画 206 10.4 本章小结 210
第 11 章 多页面应用 211 11.1 单页应用 211 11.2 React-Router213 11.2.1 路由 213 11.2.2 路由链接和嵌套 216 11.2.3 默认链接 218 11.2.4 集成 Redux219 11.3 代码分片 221 11.3.1 弹射和配置 webpack224 11.3.2 动态加载分片 225 11.3.3 动态更新 Store 的 reducer 和状态 228 11.4 本章小结 234
第 12 章 同构 235 12.1 服务器端渲染 vs 浏览器端渲染 235 12.2 构建渲染动态内容服务器 239 12.2.1 设置 Node.js 和 Express240 12.2.2 热加载 242 12.3 React 同构 246 12.3.1 React 服务器端渲染 HTML247 12.3.2 脱水和注水 248 12.3.3 服务器端 Redux Store249 12.3.4 支持服务器和浏览器获取共同数据源 250 12.3.5 服务器端路由 251 12.4 同构实例 252 12.5 本章小结 257
The text was updated successfully, but these errors were encountered:
复制书单目录,然后贴 GitHub Issues 里面做 TODO list 做追踪很是不错啊!
Sorry, something went wrong.
「第 5 章 React 组件的性能优化」和「第 10 章 动画」只是粗略过了一遍,以后做特定的事情以及遇到特定的问题再来细看。
力荐 特别好地「浅出」,配合《深入 React 技术栈》这本书「深入」食用更佳。
JimmyLv
No branches or pull requests
《深入浅出 React 和 Redux》 - Douban
前言
第 1 章 React 新的前端思维方式 1
1.1 初始化一个 React 项目 1
1.2 增加一个新的 React 组件 3
1.2.1 JSX6
1.2.2 JSX 是进步还是倒退 7
1.3 分解 React 应用 8
1.4 React 的工作方式 10
1.4.1 jQuery 如何工作 10
1.4.2 React 的理念 11
1.4.3 Virtual DOM12
1.4.4 React 工作方式的优点 13
1.5 本章小结 14
第 2 章 设计高质量的 React 组件 16
2.1 易于维护组件的设计要素 16
2.2 React 组件的数据 17
2.2.1 React 的 prop18
2.2.2 React 的 state22
2.2.3 prop 和 state 的对比 24
2.3 组件的生命周期 25
2.3.1 装载过程 25
2.3.2 更新过程 30
2.3.3 卸载过程 34
2.4 组件向外传递数据 34
2.5 React 组件 state 和 prop 的局限 37
2.6 本章小结 39
第 3 章 从 Flux 到 Redux 40
3.1 Flux40
3.1.1 MVC 框架的缺陷 41
3.1.2 Flux 应用 43
3.1.3 Flux 的优势 53
3.1.4 Flux 的不足 54
3.2 Redux56
3.2.1 Redux 的基本原则 56
3.2.2 Redux 实例 59
3.2.3 容器组件和傻瓜组件 64
3.2.4 组件 Context67
3.2.5 React-Redux71
3.3 本章小结 73
第 4 章 模块化 React 和 Redux 应用 75
4.1 模块化应用要点 75
4.2 代码文件的组织方式 76
4.2.1 按角色组织 76
4.2.2 按功能组织 78
4.3 模块接口 79
4.4 状态树的设计 81
4.4.1 一个状态节点只属于一个模块 82
4.4.2 避免冗余数据 82
4.4.3 树形结构扁平 83
4.5 Todo 应用实例 83
4.5.1 Todo 状态设计 84
4.5.2 action 构造函数 86
4.5.3 组合 reducer87
4.5.4 Todo 视图 90
4.5.5 样式 98
4.5.6 不使用 ref99
4.6 开发辅助工具 100
4.6.1 Chrome 扩展包 100
4.6.2 redux-immutable-state-invariant 辅助包 101
4.6.3 工具应用 101
4.7 本章小结 103
第 5 章 React 组件的性能优化 105
5.1 单个 React 组件的性能优化 105
5.1.1 发现浪费的渲染时间 106
5.1.2 性能优化的时机 107
5.1.3 React-Redux 的 should-ComponentUpdate 实现 108
5.2 多个 React 组件的性能优化 115
5.2.1 React 的调和(Reconciliation)过程 116
5.2.2 Key 的用法 120
5.3 用 reselect 提高数据获取性能 122
5.3.1 两阶段选择过程 123
5.3.2 范式化状态树 125
5.4 本章小结 127
第 6 章 React 高级组件 129
6.1 高阶组件 129
6.1.1 代理方式的高阶组件 132
6.1.2 继承方式的高阶组件 136
6.1.3 高阶组件的显示名 139
6.1.4 曾经的 React Mixin139
6.2 以函数为子组件 140
6.2.1 实例 CountDown142
6.2.2 性能优化问题 145
6.3 本章小结 146
第 7 章 Redux 和服务器通信 147
7.1 React 组件访问服务器 147
7.1.1 代理功能访问 API148
7.1.2 React 组件访问服务器的生命周期 150
7.1.3 React 组件访问服务器的优缺点 153
7.2 Redux 访问服务器 154
7.2.1 redux-thunk 中间件 154
7.2.2 异步 action 对象 156
7.2.3 异步操作的模式 157
7.2.4 异步操作的中止 163
7.3 Redux 异步操作的其他方法 165
7.3.1 如何挑选异步操作方式 165
7.3.2 利用 Promise 实现异步操作 167
7.4 本章小结 167
第 8 章 单元测试 168
8.1 单元测试的原则 168
8.2 单元测试环境搭建 170
8.2.1 单元测试框架 170
8.2.2 单元测试代码组织 172
8.2.3 辅助工具 173
8.3 单元测试实例 175
8.3.1 action 构造函数测试 175
8.3.2 异步 action 构造函数测试 176
8.3.3 reducer 测试 178
8.3.4 无状态 React 组件测试 178
8.3.5 被连接的 React 组件测试 179
8.4 本章小结 180
第 9 章 扩展 Redux182
9.2 中间件 182
9.1.1 中间件接口 183
9.1.2 使用中间件 186
9.1.3 Promise 中间件 187
9.1.4 中间件开发原则 190
9.2 Store Enhancer 191
9.2.1 增强器接口 191
9.2.2 增强器实例 reset192
9.3 本章小结 194
第 10 章 动画 195
10.1 动画的实现方式 195
10.1.1 CSS3 方式 195
10.1.2 脚本方式 197
10.2 ReactCSSTransitionGroup199
10.2.1 Todo 应用动画 200
10.2.2 ReactCSSTransitionGroup 规则 202
10.3 React-Motion 动画库 205
10.3.1 React-Motion 的设计原则 205
10.3.2 Todo 应用动画 206
10.4 本章小结 210
第 11 章 多页面应用 211
11.1 单页应用 211
11.2 React-Router213
11.2.1 路由 213
11.2.2 路由链接和嵌套 216
11.2.3 默认链接 218
11.2.4 集成 Redux219
11.3 代码分片 221
11.3.1 弹射和配置 webpack224
11.3.2 动态加载分片 225
11.3.3 动态更新 Store 的 reducer 和状态 228
11.4 本章小结 234
第 12 章 同构 235
12.1 服务器端渲染 vs 浏览器端渲染 235
12.2 构建渲染动态内容服务器 239
12.2.1 设置 Node.js 和 Express240
12.2.2 热加载 242
12.3 React 同构 246
12.3.1 React 服务器端渲染 HTML247
12.3.2 脱水和注水 248
12.3.3 服务器端 Redux Store249
12.3.4 支持服务器和浏览器获取共同数据源 250
12.3.5 服务器端路由 251
12.4 同构实例 252
12.5 本章小结 257
The text was updated successfully, but these errors were encountered: