内容简介 · · · · · ·
本书从源码层面分析了Vue.js。首先,简要介绍了Vue.js;然后详细讲解了其内部核心技术“变化侦测”,这里带领大家从0到1实现一个简单的“变化侦测”系统;接着详细介绍了虚拟DOM技术,其中包括虚拟DOM的原理及其patching算法;紧接着详细讨论了模板编译技术,其中包括模板解析器的实现原理、优化器的原理以及代码生成器的原理;最后详细介绍了其整体架构以及提供给我们使用的各种API的内部原理,同时还介绍了生命周期、错误处理、指令系统与模板过滤器等功能的原理。
本书适合前端开发人员阅读。
作者简介 · · · · · ·
刘博文
网名Berwin,95后,从事Web前端工作5年,2015年加入360奇舞团,现任360导航事业部资深前端工程师,负责360导航首页及二级页创新项目等亿级PV站点的设计与优化,推动Vue.js成为部门内广泛使用的核心技术栈,独立研发相关开发工具与技术解决方案并使之成功落地。
目录 · · · · · ·
前言
第1章 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 在拦截器中获取Obschmerver实例
3.9 向数组的依赖发送通知
3.10 侦测数组中元素的变化
3.11 侦测新增元素的变化
3.12 关于Array的问题
3.13 总结
第4章 变化侦测相关的API实现原理
4.1 vm.$watch
4.2 vm.$set
4.3 vm.$delete
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.4 总结
第7章 patch
7.1 patch介绍
7.2 创建节点
7.3 删除节点
7.4 更新节点
7.5 更新子节点
7.6 总结
第三篇 模板编译原理
第8章 模板编译
8.1 概念
8.2 将模板编译成渲染函数
8.3 总结
第9章 解析器
9.1 解析器的作用
9.2 解析器内部运行原理
9.3 HTML解析器
9.4 文本解析器
9.5 总结
第10章 优化器
10.1 找出所有静态节点并标记
10.2 找出所有静态根节点并标记
10.3 总结
第11章 代码生成器
11.1 通过AST生成代码字符串
11.2 代码生成器的原理
11.3 总结
第四篇 整体流程
第12章 架构设计与项目结构
12.1 目录结构
12.2 架构设计
12.3 总结
第13章 实例方法与全局API的实现原理
13.1 数据相关的实例方法
13.2 事件相关的实例方法
13.3 生命周期相关的实例方法
13.4 全局API的实现原理
13.5 总结
第14章 生命周期
14.1 生命周期图示
14.2 从源码角度了解生命周期
14.3 errorCaptured与错误处理
14.4 初始化实例属性
14.5 初始化事件
14.6 初始化inject
14.7 初始化状态
14.8 初始化provide
14.9 总结
第15章 指令的奥秘
15.1 指令原理概述
15.2 自定义指令的内部原理
15.3 虚拟DOM钩子函数
15.4 总结
第16章 过滤器的奥秘
16.1 过滤器原理概述
16.2 解析过滤器
16.3 总结
第17章 最佳实践
17.1 为列表渲染设置属性key
17.2 在v-if/v-if-else/v-else中使用key
17.3 路由切换组件不变
17.4 为所有路由统一添加query
17.5 区分Vuex与props的使用边界
17.6 避免v-if和v-for一起使用
17.7 为组件样式设置作用域
17.8 避免在scoped中使用元素选择器
17.9 避免隐性的父子组件通信
17.10 单文件组件如何命名
17.11 自闭合组件
17.12 prop名的大小写
17.13 多个特性的元素
17.14 模板中简单的表达式
17.15 简单的计算属性
17.16 指令缩写
17.17 良好的代码顺序
17.18 总结
· · · · · · (收起)
第1章 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 在拦截器中获取Obschmerver实例
3.9 向数组的依赖发送通知
3.10 侦测数组中元素的变化
3.11 侦测新增元素的变化
3.12 关于Array的问题
3.13 总结
第4章 变化侦测相关的API实现原理
4.1 vm.$watch
4.2 vm.$set
4.3 vm.$delete
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.4 总结
第7章 patch
7.1 patch介绍
7.2 创建节点
7.3 删除节点
7.4 更新节点
7.5 更新子节点
7.6 总结
第三篇 模板编译原理
第8章 模板编译
8.1 概念
8.2 将模板编译成渲染函数
8.3 总结
第9章 解析器
9.1 解析器的作用
9.2 解析器内部运行原理
9.3 HTML解析器
9.4 文本解析器
9.5 总结
第10章 优化器
10.1 找出所有静态节点并标记
10.2 找出所有静态根节点并标记
10.3 总结
第11章 代码生成器
11.1 通过AST生成代码字符串
11.2 代码生成器的原理
11.3 总结
第四篇 整体流程
第12章 架构设计与项目结构
12.1 目录结构
12.2 架构设计
12.3 总结
第13章 实例方法与全局API的实现原理
13.1 数据相关的实例方法
13.2 事件相关的实例方法
13.3 生命周期相关的实例方法
13.4 全局API的实现原理
13.5 总结
第14章 生命周期
14.1 生命周期图示
14.2 从源码角度了解生命周期
14.3 errorCaptured与错误处理
14.4 初始化实例属性
14.5 初始化事件
14.6 初始化inject
14.7 初始化状态
14.8 初始化provide
14.9 总结
第15章 指令的奥秘
15.1 指令原理概述
15.2 自定义指令的内部原理
15.3 虚拟DOM钩子函数
15.4 总结
第16章 过滤器的奥秘
16.1 过滤器原理概述
16.2 解析过滤器
16.3 总结
第17章 最佳实践
17.1 为列表渲染设置属性key
17.2 在v-if/v-if-else/v-else中使用key
17.3 路由切换组件不变
17.4 为所有路由统一添加query
17.5 区分Vuex与props的使用边界
17.6 避免v-if和v-for一起使用
17.7 为组件样式设置作用域
17.8 避免在scoped中使用元素选择器
17.9 避免隐性的父子组件通信
17.10 单文件组件如何命名
17.11 自闭合组件
17.12 prop名的大小写
17.13 多个特性的元素
17.14 模板中简单的表达式
17.15 简单的计算属性
17.16 指令缩写
17.17 良好的代码顺序
17.18 总结
· · · · · · (收起)
丛书信息
· · · · · ·
图灵原创(共132册),
这套丛书还有
《大话数据分析》《企业信息安全管理:从 0 到 1》《Kong入门与实战:基于Nginx和OpenResty的云原生微服务网关》《深度强化学习》《Docker——容器与容器云(第2版)》
等
。
喜欢读"深入浅出 Vue.js"的人也喜欢的电子书 · · · · · ·
支持 Web、iPhone、iPad、Android 阅读器
喜欢读"深入浅出 Vue.js"的人也喜欢 · · · · · ·
深入浅出 Vue.js的书评 · · · · · · ( 全部 5 条 )

很棒的Vue源码入门书籍
很棒的源码入门书籍,从最基础的数据监听入手,慢慢扩张到整个框架。 github 上有配套的代码,源码分析完,还有运行的例子。运行的例子要在作者的项目里面找。 重点提示,研究源码前,一定要先打好基础,基础不好就不要浪费时间研究了。 。。。。。。。。。。。。。。。。。。...
(展开)
> 更多书评 5篇
论坛 · · · · · ·
在这本书的论坛里发言以下书单推荐 · · · · · · ( 全部 )
谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有456人想读,手里有一本闲着?
订阅关于深入浅出 Vue.js的评论:
feed: rss 2.0
4 有用 缙云 2021-04-28 08:46:52
不要买!不要买!不要买!不乏有用的部分,但这也太水了。比如要讲a,先说「大家都知道a很重要a是怎么回事呢下面就来看一看」???然后说a原理呢有以下10行代码 9行的作用很简单就是判断,最后一行是调用b,b里面呢是调用c,c里面呢是19行判断,如果怎样就怎样,如果怎样就怎样,如果是开发环境怎样,最后1行呢调用a,a里面呢是这样的。就一页能讲完用6页废话?来做seo的吗?该讲的没讲透,文档复述好几遍。... 不要买!不要买!不要买!不乏有用的部分,但这也太水了。比如要讲a,先说「大家都知道a很重要a是怎么回事呢下面就来看一看」???然后说a原理呢有以下10行代码 9行的作用很简单就是判断,最后一行是调用b,b里面呢是调用c,c里面呢是19行判断,如果怎样就怎样,如果怎样就怎样,如果是开发环境怎样,最后1行呢调用a,a里面呢是这样的。就一页能讲完用6页废话?来做seo的吗?该讲的没讲透,文档复述好几遍。写这种代码不会被打嘛?这本书1给我我能精简到60页。 (展开)
0 有用 查查尔斯 2021-01-04 13:55:39
写的比较通俗易懂,适合入门。里面的代码是由vue 源码精简而来,如果想深入学习,还得继续研究源码
0 有用 Kosho 2021-07-10 15:31:57
大概翻了翻,主要是了解一下vue的实现原理。整体来说主要是三块,变化监测,虚拟dom,模板编译。我这个后端的同学也可以轻松看明白,写的还是挺不错的。
0 有用 luke 2021-01-12 22:01:00
vue 源码深度解析,没有使用方法或实践
0 有用 usless 2021-07-12 20:27:17
没毛病,清晰明朗,5星