Vue.js设计与实现

Vue.js设计与实现

书名: Vue.js设计与实现作者: 霍春阳 著出版社: 人民邮电出版社出版日期: 2022-02价格: 119.8页数: 501isbn: 9787115583864评分: 9.4 (豆瓣)评分: 95.6 (微信)

正版购买


内容

本书基于Vue.js 3,从规范出发,以源码为基础,并结合大量直观的配图,循序渐进地讲解Vue.js中各个功能模块的实现,细致剖析框架设计原理。全书共18章,分为六篇,主要内容包括:框架设计概览、响应系统、渲染器、组件化、编译器和服务端渲染等。通过阅读本书,对Vue.js 2/3具有上手经验的开发人员能够进一步理解Vue.js框架的实现细节,没有Vue.js使用经验但对框架设计感兴趣的前端开发人员,能够快速掌握Vue.js的设计原理。

作者

霍春阳(HcySunYang)

Vue.js官方团队成员,专注于Web研发领域,是Vue.js 3的核心贡献者之一,Vue.js文档生成工具Vuese的作者,技术社区活跃者,曾撰写大量颇受好评的技术博客。

目录

前言

1.1 命令式和声明式 2

1.3 虚拟DOM的性能到底如何 4

1.5 总结 11

2.1 提升用户的开发体验 12

2.3 框架要做到良好的Tree-Shaking 15

2.5 特性开关 19

2.7 良好的TypeScript类型支持 23

第3章 Vue.js 3的设计思路 27

3.2 初识渲染器 29

3.4 模板的工作原理 34

3.6 总结 37

4.1 响应式数据与副作用函数 40

4.3 设计一个完善的响应系统 43

4.5 嵌套的effect与effect栈 55

4.7 调度执行 60

4.9 watch的实现原理 71

4.11 过期的副作用 77

第5章 非原始值的响应式方案 84

5.2 JavaScript对象及Proxy的工作原理 88

5.4 合理地触发响应 102

5.6 只读和浅只读 110

5.7.1 数组的索引与 length 114

5.7.3 数组的查找方法 124

5.8 代理Set和Map 132

5.8.2 建立响应联系 137

5.8.4 处理forEach 143

5.8.6 values与keys方法 152

第6章 原始值的响应式方案 158

6.2 响应丢失问题 160

6.4 总结 166

7.1 渲染器与响应系统的结合 170

7.3 自定义渲染器 175

第8章 挂载与更新 180

8.2 HTML Attributes与DOM Properties 182

8.4 class的处理 189

8.6 区分vnode的类型 195

8.8 事件冒泡与更新时机问题 201

8.10 文本节点和注释节点 209

8.12 总结 215

9.1 减少DOM操作的性能开销 218

9.3 找到需要移动的元素 225

9.5 添加新元素 233

9.7 总结 241

10.1 双端比较的原理 242

10.3 非理想状况的处理方式 255

10.5 移除不存在的元素 268

第 11章 快速Diff算法 271

11.2 判断是否需要进行DOM移动操作 279

11.4 总结 296

12.1 渲染组件 298

12.3 组件实例与组件的生命周期 304

12.5 setup函数的作用与实现 311

12.7 插槽的工作原理与实现 316

12.9 总结 320

13.1 异步组件要解决的问题 322

13.2.1 封装defineAsyncComponent函数 324

13.2.3 延迟与Loading组件 328

13.3 函数式组件 333

第 14章 内建组件和模块 337

14.1.1 组件的激活与失活 337

14.1.3 缓存管理 343

14.2.1 Teleport组件要解决的问题 346

14.3 Transition组件的实现原理 350

14.3.2 实现Transition组件 356

第 15章 编译器核心技术概览 364

15.2 parser的实现原理与状态机 368

15.4 AST的转换与插件化架构 383

15.4.2 转换上下文与节点操作 387

15.5 将模板AST转为JavaScript AST 396

15.7 总结 407

16.1 文本模式及其对解析器的影响 409

16.3 状态机的开启与停止 419

16.5 解析属性 430

16.6.1 解析文本 436

16.6.3 解码数字字符引用 445

16.8 总结 451

17.1 动态节点收集与补丁标志 453

17.1.2 Block与PatchFlags 454

17.1.4 渲染器的运行时支持 459

17.2.1 带有v-if指令的节点 462

17.2.3 Fragment的稳定性 465

17.4 预字符串化 468

17.6 v-once 470

第 18章 同构渲染 474

18.2 将虚拟DOM渲染为HTML字符串 478

18.4 客户端激活的原理 489

18.5.1 组件的生命周期 494

18.5.3 只在某一端引入模块 496

18.5.5 组件 498