万本电子书0元读

万本电子书0元读

顶部广告

深入浅出Vue.js电子书

深讲解Vue.js实现原理和思想  360奇舞团团长月影和《JavaScript高级程序设计》译者李松峰作序推荐  360前端工程师精心造,带你深了解Vue.js的源码

售       价:¥

纸质售价:¥37.90购买纸书

415人正在读 | 0人评论 6.5

作       者:刘博文 著

出  版  社:人民邮电出版社有限公司

出版时间:2019-03-01

字       数:24.6万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书从源码层面分析了Vue.js。首先,简要介绍了Vue.js;然后详细讲解了其内部核心技术“变化侦测”,这里带领大家从0到1实现一个简单的“变化侦测”系统;着详细介绍了虚拟DOM技术,其中包括虚拟DOM的原理及其patching算法;紧着详细讨论了模板编译技术,其中包括模板解析器的实现原理、优化器的原理以及代码生成器的原理;*后详细介绍了其整体架构以及提供给我们使用的各种API的内部原理,同时还介绍了生命周期、错误处理、指令系统与模板过滤器等功能的原理。  本书适合前端发人员阅读。<br/>【推荐语】<br/>深讲解Vue.js实现原理和思想  360奇舞团团长月影和《JavaScript高级程序设计》译者李松峰作序推荐  360前端工程师精心造,带你深了解Vue.js的源码<br/>【作者】<br/>刘博文,网名Berwin,95后,从事Web前端工作5年,2015年加360奇舞团,现任360导航事业部前端工程师,负责360导航首页及二级页创新项目等亿级PV站的设计与优化,推动Vue.js成为部门内广泛使用的核心技术栈,独立研发相关发工具与技术解决方案并使之成功落地。  W3C性能工作组成员,在Web性能领域有深研究。热爱源,热爱技术,梦想是用技术改变世界。个人GitHub地址:https://github.com/berwin。<br/>
目录展开

序一

序二

前言

本书目的

组织结构

致谢

第 1 章 Vue.js简介

1.1 什么是Vue.js

1.2 Vue.js简史

第一篇 变化侦测

第 2 章 Object的变化侦测

2.1 什么是变化侦测

2.2 如何追踪变化

2.3 如何收集依赖

2.4 依赖收集在哪里

2.5 依赖是谁

2.6 什么是Watcher

2.7 递归侦测所有key

2.8 关于Object的问题

2.9 总结

第 3 章 Array的变化侦测

3.1 如何追踪变化

3.2 拦截器

3.3 使用拦截器覆盖Array原型

3.4 将拦截器方法挂载到数组的属性上

3.5 如何收集依赖

3.6 依赖列表存在哪儿

3.7 收集依赖

3.8 在拦截器中获取Observer实例

3.9 向数组的依赖发送通知

3.10 侦测数组中元素的变化

3.11 侦测新增元素的变化

3.11.1 获取新增元素

3.11.2 使用Observer侦测新增元素

3.12 关于Array的问题

3.13 总结

第 4 章 变化侦测相关的API实现原理

4.1 vm.$watch

4.1.1 用法

4.1.2 watch的内部原理

4.1.3 deep参数的实现原理

4.2 vm.$set

4.2.1 用法

4.2.2 Array的处理

4.2.3 key已经存在于target中

4.2.4 处理新增的属性

4.3 vm.$delete

4.3.1 用法

4.3.2 实现原理

4.4 总结

第二篇 虚拟DOM

第 5 章 虚拟DOM简介

5.1 什么是虚拟DOM

5.2 为什么要引入虚拟DOM

5.3 Vue.js中的虚拟DOM

5.4 总结

第 6 章 VNode

6.1 什么是VNode

6.2 VNode的作用

6.3 VNode的类型

6.3.1 注释节点

6.3.2 文本节点

6.3.3 克隆节点

6.3.4 元素节点

6.3.5 组件节点

6.3.6 函数式组件

6.4 总结

第 7 章 patch

7.1 patch介绍

7.1.1 新增节点

7.1.2 删除节点

7.1.3 更新节点

7.1.4 小结

7.2 创建节点

7.3 删除节点

7.4 更新节点

7.4.1 静态节点

7.4.2 新虚拟节点有文本属性

7.4.3 新虚拟节点无文本属性

7.4.4 小结

7.5 更新子节点

7.5.1 更新策略

7.5.2 优化策略

7.5.3 哪些节点是未处理过的

7.5.4 小结

7.6 总结

第三篇 模板编译原理

第 8 章 模板编译

8.1 概念

8.2 将模板编译成渲染函数

8.2.1 解析器

8.2.2 优化器

8.2.3 代码生成器

8.3 总结

第 9 章 解析器

9.1 解析器的作用

9.2 解析器内部运行原理

9.3 HTML解析器

9.3.1 运行原理

9.3.2 截取开始标签

9.3.3 截取结束标签

9.3.4 截取注释

9.3.5 截取条件注释

9.3.6 截取DOCTYPE

9.3.7 截取文本

9.3.8 纯文本内容元素的处理

9.3.9 使用栈维护DOM层级

9.3.10 整体逻辑

9.4 文本解析器

9.5 总结

第 10 章 优化器

10.1 找出所有静态节点并标记

10.2 找出所有静态根节点并标记

10.3 总结

第 11 章 代码生成器

11.1 通过AST生成代码字符串

11.2 代码生成器的原理

11.2.1 元素节点

11.2.2 文本节点

11.2.3 注释节点

11.3 总结

第四篇 整体流程

第 12 章 架构设计与项目结构

12.1 目录结构

12.2 架构设计

12.3 总结

第 13 章 实例方法与全局API的实现原理

13.1 数据相关的实例方法

13.2 事件相关的实例方法

13.2.1 vm.$on

13.2.2 vm.$off

13.2.3 vm.$once

13.2.4 vm.$emit

13.3 生命周期相关的实例方法

13.3.1 vm.$forceUpdate

13.3.2 vm.$destroy

13.3.3 vm.$nextTick

13.3.4 vm.$mount

13.4 全局API的实现原理

13.4.1 Vue.extend

13.4.2 Vue.nextTick

13.4.3 Vue.set

13.4.4 Vue.delete

13.4.5 Vue.directive

13.4.6 Vue.filter

13.4.7 Vue.component

13.4.8 Vue.use

13.4.9 Vue.mixin

13.4.10 Vue.compile

13.4.11 Vue.version

13.5 总结

第 14 章 生命周期

14.1 生命周期图示

14.1.1 初始化阶段

14.1.2 模板编译阶段

14.1.3 挂载阶段

14.1.4 卸载阶段

14.1.5 小结

14.2 从源码角度了解生命周期

new Vue()被调用时发生了什么

14.3 errorCaptured与错误处理

14.4 初始化实例属性

14.5 初始化事件

14.6 初始化inject

14.6.1 provide/inject的使用方式

14.6.2 inject的内部原理

14.7 初始化状态

14.7.1 初始化props

14.7.2 初始化methods

14.7.3 初始化data

14.7.4 初始化computed

14.7.5 初始化watch

14.8 初始化provide

14.9 总结

第 15 章 指令的奥秘

15.1 指令原理概述

15.1.1 v-if指令的原理概述

15.1.2 v-for指令的原理概述

15.1.3 v-on指令

15.2 自定义指令的内部原理

15.3 虚拟DOM钩子函数

15.4 总结

第 16 章 过滤器的奥秘

16.1 过滤器原理概述

16.1.1 串联过滤器

16.1.2 滤器接收参数

16.1.3 resolveFilter的内部原理

16.2 解析过滤器

16.3 总结

第 17 章 最佳实践

17.1 为列表渲染设置属性key

17.2 在v-if/v-if-else/v-else中使用key

17.3 路由切换组件不变

17.3.1 路由导航守卫beforeRouteUpdate

17.3.2 观察 $route对象的变化

17.3.3 为router-view组件添加属性key

17.4 为所有路由统一添加query

17.4.1 使用全局守卫beforeEach

17.4.2 使用函数劫持

17.5 区分Vuex与props的使用边界

17.6 避免v-if和v-for一起使用

17.7 为组件样式设置作用域

17.8 避免在scoped中使用元素选择器

17.9 避免隐性的父子组件通信

17.10 单文件组件如何命名

17.10.1 单文件组件的文件名的大小写

17.10.2 基础组件名

17.10.3 单例组件名

17.10.4 紧密耦合的组件名

17.10.5 组件名中的单词顺序

17.10.6 完整单词的组件名

17.10.7 组件名为多个单词

17.10.8 模板中的组件名大小写

17.10.9 JS/JSX中的组件名大小写

17.11 自闭合组件

17.12 prop名的大小写

17.13 多个特性的元素

17.14 模板中简单的表达式

17.15 简单的计算属性

17.16 指令缩写

17.17 良好的代码顺序

17.17.1 组件/实例的选项的顺序

17.17.2 元素特性的顺序

17.17.3 单文件组件顶级元素的顺序

17.18 总结

作者简介

看完了

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部