React设计原理
全新正版 极速发货
¥
59.1
5.4折
¥
109
全新
库存4件
作者卡颂
出版社电子工业出版社
ISBN9787121444838
出版时间2022-12
装帧平装
开本16开
定价109元
货号31611306
上书时间2024-10-24
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
卡颂,前端工程师。曾先后就职于360奇舞团、字节跳动等企业。技术社区活跃者,开源电子书《React技术揭秘》的作者。
目录
第1篇 理念篇
第1章 前端框架原理概览2
1.1 初识前端框架3
1.1.1 如何描述UI3
1.1.2 如何组织UI与逻辑8
1.1.3 如何在组件之间传输数据12
1.1.4 前端框架的分类依据14
1.1.5 React中的自变量与因变量18
1.2 前端框架使用的技术20
1.2.1 编程:细粒度更新20
1.2.2 AOT29
1.2.3 Virtual DOM32
1.3 前端框架的实现原理35
1.3.1 Svelte35
1.3.2 Vue343
1.3.3 React46
1.4 总结48
第2章 React理念49
2.1 问题与解决思路49
2.1.1 事件循环50
2.1.2 浏览器渲染53
2.1.3 CPU瓶颈55
2.1.4 I/O瓶颈56
2.2 底层架构的演进57
2.2.1 新旧架构介绍58
2.2.2 主打特性的迭代60
2.2.2 渐进升级策略的迭代61
2.3 Fiber架构65
2.3.1 FiberNode的含义65
2.3.2 双缓存机制68
2.3.3 mount时Fiber Tree的构建69
2.3.4 update时Fiber Tree的构建71
2.4 调试React源码72
2.4.1 仓库结构概览73
2.4.2 以本书推荐方式调试源码74
2.4.3 以官方方式调试源码75
2.5 总结77
第2篇 架构篇
第3章 render阶段80
3.1 流程概览81
3.2 beginWork83
3.3 React中的位运算87
3.3.1 基本的三种位运算88
3.3.2 位运算在“标记状态”中的应用89
3.4 completeWork90
3.4.1 flags冒泡91
3.4.2 mount概览91
3.4.3 update概览96
3.5 编程:ReactDOM Renderer98
3.6 总结104
第4章 commit阶段105
4.1 流程概览106
4.1.1 子阶段的执行流程108
4.1.2 Effects list111
4.2 错误处理113
4.2.1 捕获错误115
4.2.2 构造callback116
4.2.3 执行callback118
4.3 BeforeMutation阶段119
4.4 Mutation阶段120
4.4.1 删除DOM元素120
4.4.2 插入、移动DOM元素122
4.4.3 更新DOM元素125
4.4.4 Fiber Tree切换127
4.5 Layout阶段127
4.6 总结129
第5章 schedule阶段130
5.1 编程:简易schedule阶段实现131
5.1.1 Scheduler简介133
5.1.2 改造后的schedule方法134
5.1.3 改造后的perform方法137
5.1.4 改造后的完整流程140
5.2 Scheduler的实现148
5.2.1 流程概览149
5.2.2 优先级队列的实现151
5.2.3 宏任务的选择152
5.3 Lane模型154
5.3.1 React与Scheduler的结合155
5.3.2 基于expirationTime的算法159
5.3.3 基于Lane的算法163
5.4 Lane模型在React中的应用166
5.4.1 初始化lane168
5.4.2 从fiberNode到FiberRootNode171
5.4.3 调度FiberRootNode173
5.4.4 调度策略175
5.4.5 解决饥饿问题178
5.4.6 root.pendingLanes工作流程182
5.5 Batched Updates186
5.5.1 Batched Updates发展史187
5.5.2 不同框架Batched Updates的区别189
5.6 总结190
第3篇 实现篇
第6章 状态更新流程192
6.1 编程:简易事件系统实现193
6.1.1 实现SyntheticEvent195
6.1.2 实现事件传播机制196
6.1.3 收集路径中的事件回调函数197
6.1.4 捕获、冒泡阶段的实现198
6.2 Update201
6.2.1 心智模型201
6.2.2 数据结构202
6.2.3 updateQueue206
6.2.4 产生update207
6.2.5 消费update需要考虑的问题211
6.2.6 消费update214
6.3 ReactDOM.createRoot流程219
6.4 useState流程220
6.5 性能优化222
6.5.1 eagerState策略223
6.5.2 bailout策略227
6.5.3 bailout策略的示例233
6.5.4 bailout与Context API235
6.5.5 对日常开发的启示239
6.6 总结243
第7章 reconcile流程244
7.1 单节点Diff247
7.2 多节点Diff251
7.2.1 设计思路254
7.2.2 算法实现255
7.3 编程:实现Diff算法261
7.3.1 遍历前的准备工作264
7.3.2 核心遍历逻辑265
7.3.3 遍历后的收尾工作267
7.4 总结269
第8章 FC与Hooks实现270
8.1 心智模型271
8.1.1 代数效应271
8.1.2 FC与Suspense273
8.1.3 Suspense工作流程279
8.2 编程:简易useState实现284
8.2.1 实现“产生更新的流程”284
8.2.2 实现useState288
8.2.3 简易实现的不足293
8.3 Hooks流程概览294
8.3.1 dispatcher294
8.3.2 Hooks的数据结构296
8.3.3 Hooks执行流程297
8.4 useState与useReducer299
8.5 effect相关Hook302
8.5.1 数据结构303
8.5.2 声明阶段304
8.5.3 调度阶段306
8.5.4 执行阶段308
8.6 useMemo与useCallback309
8.6.1 mount时执行流程309
8.6.2 update时执行流程310
8.6.3 useMemo的妙用311
8.7 useRef312
8.7.1 实现原理313
8.7.2 ref的工作流程314
8.7.3 ref的失控317
8.7.4 ref失控的防治318
8.8 useTransition321
8.8.1 useTransition实现原理322
8.8.2 useTransition工作流程324
8.8.3 entangle机制326
8.8.4 entangle实现原理327
8.8.5 entangle工作流程328
8.9 useDeferredValue333
8.10 编程:实现useErrorBoundary336
8.10.1 定义dispatcher338
8.10.2 实现逻辑339
8.10.3 提取公共方法342
8.10.4 render阶段错误处理流程343
8.10.5 commit阶段错误处理流程349
8.11 总结351
内容摘要
本书致力于剖析React设计理念与实现原理,基于React18版本源码讲解。全书划分为3个篇章,第1篇为理念篇(第1章~第2章),讲解React在主流前端框架中的定位与设计理念。第2篇为架构篇(第3章~第5章),讲解React架构中的3个阶段――schedule、render、commit,以及如何在架构中践行设计理念。第3篇为实现篇(第6章~第8章),贯穿React架构中的3个阶段,讲解具体API的实现细节。本书的目标读者包括有实际React项目经验并希望更深入理解React的开发人员,以及没有使用过React但对前端框架设计感兴趣的开发人员。通过学习本书,读者可以对当前主流前端框架的实现原理有清晰的认识,并对React从理念到实现层面有更深入的理解。
— 没有更多了 —
以下为对购买帮助不大的评价