Vue.js设计与实现 深入浅出Vue.js3前端开发实战Vue.js3.0 Js前端框架从入门到*通教程书籍
运费: | ¥ 0.00-20.00 |
商品详情
书名:Vue.js设计与实现
定*:**9.8
ISBN:9787**5583864
作者:霍春阳(HcySunYang)
版次:第*版
出版时间:2022-0*
内容提要:
本书基于Vue.js 3,从规范出发,以源码为基础,并结合大量直观的配图,循序渐进地讲解Vue.js中各个功能模块的实现,细*剖析框架设计原理。*书共*8章,分为六篇,主要内容*括:框架设计概览、响应系统、渲染器、组件化、编译器和服务端渲染等。通过阅读本书,对Vue.js 2/3具有上手经验的开发人员能够进*步理解Vue.js框架的实现细节,没有Vue.js使用经验但对框架设计感兴趣的前端开发人员,能够快速掌握Vue.js的设计原理。
作者简介:
霍春阳(HcySunYang) Vue.js官方团队成员,*注于Web研发*域,是Vue.js 3的核心贡献者之*,Vue.js文档生成工具Vuese的作者,技术社区活跃者,曾撰写大量颇受好评的技术博客。
目录:
序
前言
第 *章 权衡的艺术 2
*.* 命令式和声明式 2
*.2 性能与可维护性的权衡 3
*.3 虚拟DOM的性能到底如何 4
*.4 运行时和编译时 8
*.5 总结 **
第 2章 框架设计的核心要素 *2
2.* 提*用户的开发体验 *2
2.2 控制框架代码的体积 *4
2.3 框架要做到良好的Tree-Shaking *5
2.4 框架应该输出怎样的构建产物 *7
2.5 *性开关 *9
2.6 错误处理 2*
2.7 良好的TypeScript类型支持 23
2.8 总结 25
第3章 Vue.js 3的设计思路 27
3.* 声明式地描述UI 27
3.2 初识渲染器 29
3.3 组件的本质 32
3.4 模板的工作原理 34
3.5 Vue.js是各个模块组成的有机整体 36
3.6 总结 37
第4章 响应系统的作用与实现 40
4.* 响应式数据与副作用函数 40
4.2 响应式数据的基本实现 4*
4.3 设计*个完善的响应系统 43
4.4 分支切换与cleanup 50
4.5 嵌套的effect与effect栈 55
4.6 避**限递归循环 59
4.7 调度执行 60
4.8 计算属性computed与lazy 64
4.9 watch的实现原理 7*
4.*0 立*执行的watch与回调执行时机 75
4.** 过期的副作用 77
4.*2 总结 82
第5章 非原始值的响应式方案 84
5.* 理解Proxy和Reflect 84
5.2 JavaScript对象及Proxy的工作原理 88
5.3 如何代理Object 92
5.4 合理地触发响应 *02
5.5 浅响应与深响应 *08
5.6 只读和浅只读 **0
5.7 代理数组 **3
5.7.* 数组的索引与 length **4
5.7.2 遍历数组 **9
5.7.3 数组的查找方法 *24
5.7.4 隐式修改数组长度的原型方法 *29
5.8 代理Set和Map *32
5.8.* 如何代理Set和Map *33
5.8.2 建立响应联系 *37
5.8.3 避*污染原始数据 *40
5.8.4 处理forEach *43
5.8.5 迭代器方法 *47
5.8.6 values与keys方法 *52
5.9 总结 *55
第6章 原始值的响应式方案 *58
6.* 引入ref的概念 *58
6.2 响应丢失问题 *60
6.3 自动脱ref *64
6.4 总结 *66
第7章 渲染器的设计 *70
7.* 渲染器与响应系统的结合 *70
7.2 渲染器的基本概念 *72
7.3 自定义渲染器 *75
7.4 总结 *79
第8章 挂载与更新 *80
8.* 挂载子节点和元素的属性 *80
8.2 HTML Attributes与DOM Properties *82
8.3 正确地设置元素属性 *84
8.4 class的处理 *89
8.5 卸载操作 *92
8.6 区分vnode的类型 *95
8.7 事件的处理 *96
8.8 事件冒泡与更新时机问题 20*
8.9 更新子节点 204
8.*0 文本节点和注释节点 209
8.** Fragment 2*2
8.*2 总结 2*5
第9章 简单Diff算法 2*8
9.* 减少DOM操作的性能开销 2*8
9.2 DOM复用与key的作用 22*
9.3 找到需要移动的元素 225
9.4 如何移动元素 228
9.5 添加新元素 233
9.6 移除*存在的元素 238
9.7 总结 24*
第 *0章 双端Diff算法 242
*0.* 双端比较的原理 242
*0.2 双端比较的*势 252
*0.3 非理想状况的处理方式 255
*0.4 添加新元素 263
*0.5 移除*存在的元素 268
*0.6 总结 270
第 **章 快速Diff算法 27*
**.* 相同的前置元素和后置元素 27*
**.2 判断是否需要进行DOM移动操作 279
**.3 如何移动元素 288
**.4 总结 296
第 *2章 组件的实现原理 298
*2.* 渲染组件 298
*2.2 组件状态与自更新 30*
*2.3 组件实例与组件的生命周期 304
*2.4 props与组件的被动更新 306
*2.5 setup函数的作用与实现 3**
*2.6 组件事件与emit的实现 3*4
*2.7 插槽的工作原理与实现 3*6
*2.8 注册生命周期 3*8
*2.9 总结 320
第 *3章 异步组件与函数式组件 322
*3.* 异步组件要解决的问题 322
*3.2 异步组件的实现原理 324
*3.2.* 封装defineAsyncComponent函数 324
*3.2.2 *时与Error组件 325
*3.2.3 延迟与Loading组件 328
*3.2.4 重试机制 33*
*3.3 函数式组件 333
*3.4 总结 335
第 *4章 内建组件和模块 337
*4.* KeepAlive组件的实现原理 337
*4.*.* 组件的激活与失活 337
*4.*.2 include和exclude 342
*4.*.3 缓存管理 343
*4.2 Teleport组件的实现原理 346
*4.2.* Teleport组件要解决的问题 346
*4.2.2 实现Teleport组件 347
*4.3 Transition组件的实现原理 350
*4.3.* 原生DOM的过渡 35*
*4.3.2 实现Transition组件 356
*4.4 总结 360
第 *5章 编译器核心技术概览 364
*5.* 模板DSL的编译器 364
*5.2 parser的实现原理与状态机 368
*5.3 构造AST 374
*5.4 AST的转换与插件化架构 383
*5.4.* 节点的访问 383
*5.4.2 转换上下文与节点操作 387
*5.4.3 进入与退出 392
*5.5 将模板AST转为JavaScript AST 396
*5.6 代码生成 402
*5.7 总结 407
第 *6章 解析器 409
*6.* 文本模式及其对解析器的影响 409
*6.2 递归下降算法构造模板AST 4*3
*6.3 状态机的开启与停止 4*9
*6.4 解析标签节点 426
*6.5 解析属性 430
*6.6 解析文本与解码HTML实体 436
*6.6.* 解析文本 436
*6.6.2 解码命名字符引用 438
*6.6.3 解码数字字符引用 445
*6.7 解析插值与注释 449
*6.8 总结 45*
第 *7章 编译*化 453
*7.* 动态节点收集与补丁标志 453
*7.*.* 传统Diff算法的问题 453
*7.*.2 Block与PatchFlags 454
*7.*.3 收集动态节点 457
*7.*.4 渲染器的运行时支持 459
*7.2 Block树 46*
*7.2.* 带有v-if指令的节点 462
*7.2.2 带有v-for指令的节点 464
*7.2.3 Fragment的稳定性 465
*7.3 静态提* 466
*7.4 预字符串化 468
*7.5 缓存内联事件处理函数 469
*7.6 v-once 470
*7.7 总结 47*
第 *8章 同构渲染 474
*8.* CSR、SSR以及同构渲染 474
*8.2 将虚拟DOM渲染为HTML字符串 478
*8.3 将组件渲染为HTML字符串 484
*8.4 客户端激活的原理 489
*8.5 编写同构的代码 494
*8.5.* 组件的生命周期 494
*8.5.2 使用跨平台的API 496
*8.5.3 只在某*端引入模块 496
*8.5.4 避*交叉请求引起的状态污染 497
*8.5.5
*8.6 总结 499
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...