React 状态管理与同构实战

React 状态管理与同构实战
编辑推荐
适读人群 :前端开发工程师,React 技术人员
一部颠覆前端历史的框架。
React 的横空出世颠覆了以往的前端开发方式,本书深入浅出 React 与 Redux 相关原理,重点讲解前沿同构技术,揭秘 SSR 实战要领!
两位知名技术博主的沉淀。
本书的两位作者都是前端圈内非常活跃的技术博主,拥有丰富的实战经验,经历近十年的沉淀,将鲜活的经验通过本书分享给各位读者!
众多圈内技术大咖的力荐。
百度公司副总裁沈抖、百度公司资深前端工程师董睿、前端圈知名技术专家阮一峰、狼叔、迷渡(justjavac)、小爝、顾轶灵联合力荐!
内容简介
React 自开源以来,便以革命性的设计理念迅速颠覆了前端开发的传统意义,其倡导的组件化、状态管理、虚拟 DOM 等思想极大提高了前端开发效率。为了更加高效地维护 React 应用的数据状态,以 Redux 为代表的数据管理模式横空出世。
本书以 React 技术栈为核心,在介绍 React 用法的基础上,从源码层面分析了 Redux 思想,同时着重介绍了服务端渲染和同构应用的架构模式。书中包含许多项目实例,不仅为用户打开了 React 技术栈的大门,更能提升读者对前沿领域的整体认知。本书主要适合具有一定 JavaScript 基础的前端工程师,以及对前端开发感兴趣的相关从业人员阅读。
作者简介
侯策。硕士毕业于法国国立高等电信学校。曾任职于 BePATIENT 集团,负责互联网 + 医疗平台的研发。曾任职于法国能源和苏伊士集团,参与欧洲天然气运输和费用系统的研发。2015 年回国加入百度知识搜索部,负责多个产品线的大型技术迭代。行业之外是一名国家二级运动员(足球项目),曾组织过赴北非撒哈拉地区看望孤儿等慈善活动。
颜海镜。知名技术博主,开源达人,常以歪脖无脸男形象作为头像活跃于各大技术网站,经过多年沉淀,专注 Web 前端开发,先后任职于金山、百度、美团点评,负责前端开发工作。
目录
第 1 章 React 与前端 1
-
1.1 前端简史 1
-
1.2 React 是什么 3
-
1.3 React 家族 4
-
1.4 本章小结 7
第 2 章 深入浅出 React 8
-
2.1 组件 8
-
2.2 组件与系统 11
-
2.3 神奇的 JSX 12
-
2.4 组件的生命周期 14
-
2.5 组件的属性和状态 17
-
2.6 组件和事件 22
-
2.7 组件通信 24
-
2.8 组件的抽象与复用 32
-
2.9 命令式与 DOM 38
-
2.10 本章小结 41
第 3 章 Redux 应用架构基础 42
-
3.1 Redux 究竟是什么 42
-
3.2 Redux 设计哲学 44
-
3.3 函数式编程和纯函数 48
-
3.4 Redux 基本使用和实践 51
-
3.5 Redux 开发基础实例 58
-
3.6 reducer 编写关键:不可变性 62
-
3.7 Redux 中间件和异步 73
-
3.8 Redux 与 React 78
-
3.9 实现计数器的四种方式 85
-
3.10 完成一个工程化实例 98
-
3.11 本章小结 113
第 4 章 深入理解 Redux 114
-
4.1 Redux 源码探索——store 的实现 114
-
4.2 Redux 源码探索——combineReducers 的实现 118
-
4.3 dispatch 的改造——实现记录日志 121
-
4.4 dispatch 的改造——识别 Promise 124
-
4.5 糅合多种 dispatch 126
-
4.6 Redux 源码探索——中间件的秘密 131
-
4.7 再谈 Redux 设计思想 136
-
4.8 react-redux 究竟是什么 142
-
4.9 本章小结 145
第 5 章 揭秘 React 同构应用 146
-
5.1 前后端架构设计和服务端渲染概念 146
-
5.2 同构应用 150
-
5.3 使用 React 和 Redux 实现同构应用 152
-
5.4 React 16 在服务端渲染上的惊喜 157
-
5.5 同构项目实战:基于 Node.js 的“渐进式”流渲染 158
-
5.6 Next.js 设计理念和使用 168
-
5.7 使用 Next.js 实现同构应用 172
-
5.8 本章小结 173
第 6 章 深入理解 React 技术内幕与生态社区 184
-
6.1 React 组件的组合和复用——高阶组件 184
-
6.2 高阶组件和 render prop 193
-
6.3 React 组件的组合和复用——Function as Child Component 198
-
6.4 React 组件的组合和复用——Children API 203
-
6.5 React“轮子”是怎样设计的 209
-
6.6 setState 异步带来的讨论和思考 216
-
6.7 React 组件和 React element 到底是什么 221
-
6.8 实现一个简易的 React 库 227
-
6.9 引入 Redux 的必要性及利弊 239
-
6.10 如何设计并应用 Redux connect 243
-
6.11 使用 selector 实现最佳实践 248
-
6.12 Redux store 数据结构扁平化及在 Twitter 中的实践 255
-
6.13 React state 和 Redux state 的选取原则 266
-
6.14 本章小结 267
第 7 章 单页面应用代码分割 269
-
7.1 React 和代码分割 269
-
7.2 Redux reducer 层面代码分割 278
-
7.3 代码分割工程实例 283
-
7.4 本章小结 288
第 8 章 React 应用性能优化 289
-
8.1 React 应用性能的秘密 289
-
8.2 提升 React 应用性能的建议 295
-
8.3 使用 PureComponent 保证开发性能 302
-
8.4 Redux 中间件和 Web Worker 308
-
8.5 本章小结 311