深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版

深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版

编辑点评:

非常适合web前端学习和阅读的一本电子书籍,深入浅出vue.js可以深入讲解Vue.js实现原理和思想,本站提供的是高清无水印的原版书籍,需要的可以免费下载。

深入浅出vuejs电子书

内容提要

本书从源码层面分析了Viejs.首先,简要介绍了Viejs:接着详细讲解了其内部核心技术“变化侦测"

并带领大家从0到1实现一个简单的“变化侦测”系统:然后详细介绍了虚拟DOM技术,其中包括虚拟DOM的原理及其patching算法;再后详细讨论了模板编译技术,其中包括模板解析器的实现原理、优化器的原理以及代码生成器的原理;最后详细介绍了其整体架构以及提供给我们使用的各种API的内部原理,同时还介绍了生命周期、错误处理、指令系统与模板过滤器等功能的原理。

本书适合前端开发人员阅读。

深入浅出vuejs电子书图片预览

深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(1)

深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(2)

深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(3)

深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(4)

深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(5)

深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(6)

深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(7)

深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(8)

深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(9)

深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(10)

深入浅出vuejs目录

第1章Vue.js简介1

1.1什么是Vue.js1

1.2Vue.js简史2

第一篇变化侦测

第2章Object的变化侦测6

2.1什么是变化侦测6

2.2如何追踪变化7

2.3如何收集依赖7

2.4依赖收集在哪里8

2.5依赖是谁10

2.6什么是Watcher10

2.7递归侦测所有key12

2.8关于Object的问题13

2.9总结14

第3章Array的变化侦测16

3.1如何追踪变化16

3.2拦截器17

3.3使用拦截器覆盖Array原型18

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

3.5如何收集依赖21

3.6依赖列表存在哪儿22

3.7收集依赖23

3.8在拦截器中获取Observer实例24

3.9向数组的依赖发送通知25

3.10侦测数组中元素的变化26

3.11侦测新增元素的变化27

3.11.1获取新增元素27

3.11.2使用Observer侦测新增元素28

3.12关于Array的问题29

3.13总结29

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

4.1vm.$watch31

4.1.1用法31

4.1.2watch的内部原理32

4.1.3deep参数的实现原理36

4.2vm.$set38

4.2.1用法38

4.2.2Array的处理39

4.2.3key已经存在于target中40

4.2.4处理新增的属性40

4.3vm.$delete41

4.3.1用法42

4.3.2实现原理42

4.4总结45

第二篇虚拟DOM

第5章虚拟DOM简介48

5.1什么是虚拟DOM48

5.2为什么要引入虚拟DOM51

5.3Vue.js中的虚拟DOM51

5.4总结53

第6章VNode54

6.1什么是VNode54

6.2VNode的作用55

6.3VNode的类型56

6.3.1注释节点57

6.3.2文本节点57

6.3.3克隆节点57

6.3.4元素节点58

6.3.5组件节点59

6.3.6函数式组件59

6.4总结59

第7章patch60

7.1patch介绍60

7.1.1新增节点61

7.1.2删除节点62

7.1.3更新节点63

7.1.4小结63

7.2创建节点64

7.3删除节点67

7.4更新节点68

7.4.1静态节点68

7.4.2新虚拟节点有文本属性69

7.4.3新虚拟节点无文本属性69

7.4.4小结70

7.5更新子节点72

7.5.1更新策略72

7.5.2优化策略77

7.5.3哪些节点是未处理过的82

7.5.4小结83

7.6总结86

第三篇模板编译原理

第8章模板编译88

8.1概念88

8.2将模板编译成渲染函数89

8.2.1解析器90

8.2.2优化器91

8.2.3代码生成器91

8.3总结92

第9章解析器93

9.1解析器的作用93

9.2解析器内部运行原理94

9.3HTML解析器99

9.3.1运行原理100

9.3.2截取开始标签101

9.3.3截取结束标签107

9.3.4截取注释108

9.3.5截取条件注释108

9.3.6截取DOCTYPE109

9.3.7截取文本109

9.3.8纯文本内容元素的处理112

9.3.9使用栈维护DOM层级114

9.3.10整体逻辑114

9.4文本解析器117

9.5总结121

第10章优化器122

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

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

10.3总结129

第11章代码生成器130

11.1通过AST生成代码字符串131

11.2代码生成器的原理134

11.2.1元素节点134

11.2.2文本节点136

11.2.3注释节点137

11.3总结137

第四篇整体流程

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

12.1目录结构140

12.2架构设计143

12.3总结145

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

实现原理146

13.1数据相关的实例方法147

13.2事件相关的实例方法147

13.2.1vm.$on148

13.2.2vm.$off149

13.2.3vm.$once152

13.2.4vm.$emit153

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

13.3.1vm.$forceUpdate154

13.3.2vm.$destroy155

13.3.3vm.$nextTick159

13.3.4vm.$mount169

13.4全局API的实现原理178

13.4.1Vue.extend178

13.4.2Vue.nextTick182

13.4.3Vue.set183

13.4.4Vue.delete183

13.4.5Vue.directive184

13.4.6Vue.filter185

13.4.7Vue.component186

13.4.8Vue.use188

13.4.9Vue.mixin189

13.4.10Vue.compile190

13.4.11Vue.version190

13.5总结191

第14章生命周期192

14.1生命周期图示192

14.1.1初始化阶段193

14.1.2模板编译阶段194

14.1.3挂载阶段194

14.1.4卸载阶段194

14.1.5小结194

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

14.3errorCaptured与错误处理199

14.4初始化实例属性203

14.5初始化事件204

14.6初始化inject208

14.6.1provide/inject的使用方式208

14.6.2inject的内部原理210

14.7初始化状态215

14.7.1初始化props216

14.7.2初始化methods224

14.7.3初始化data225

14.7.4初始化computed228

14.7.5初始化watch238

14.8初始化provide241

14.9总结241

第15章指令的奥秘242

15.1指令原理概述242

15.1.1v-if指令的原理概述243

15.1.2v-for指令的原理概述243

15.1.3v-on指令244

15.2自定义指令的内部原理246

15.3虚拟DOM钩子函数250

15.4总结251

第16章过滤器的奥秘252

16.1过滤器原理概述253

16.1.1串联过滤器254

16.1.2滤器接收参数254

16.1.3resolveFilter的内部原理255

16.2解析过滤器256

16.3总结258

第17章最佳实践259

17.1为列表渲染设置属性key259

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

17.3路由切换组件不变260

17.3.1路由导航守卫beforeRouteUpdate261

17.3.2观察$route对象的变化261

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

17.4为所有路由统一添加query262

17.4.1使用全局守卫beforeEach263

17.4.2使用函数劫持263

17.5区分Vuex与props的使用边界264

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

17.7为组件样式设置作用域266

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

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

17.10单文件组件如何命名268

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

17.10.2基础组件名269

17.10.3单例组件名270

17.10.4紧密耦合的组件名270

17.10.5组件名中的单词顺序271

17.10.6完整单词的组件名272

17.10.7组件名为多个单词273

17.10.8模板中的组件名大小写273

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

17.11自闭合组件275

17.12prop名的大小写276

17.13多个特性的元素276

17.14模板中简单的表达式276

17.15简单的计算属性277

17.16指令缩写278

17.17良好的代码顺序278

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

17.17.2元素特性的顺序280

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

17.18总结282

作者介绍

刘博文,网名Berwin,95后,从事Web前端工作5年,2015年加入360奇舞团,现任360导航事业部前端工程师,负责360导航首页及二级页创新项目等亿级PV站点的设计与优化,推动Vue.js成为部门内广泛使用的核心技术栈,独立研发相关开发工具与技术解决方案并使之成功落地。

W3C性能工作组成员,在Web性能领域有深入研究。热爱开源,热爱技术,梦想是用技术改变世界。

深入浅出vuejs电子书截图

深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(11)深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(12)深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(13)深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(14)深入浅出vue.js pdf书-深入浅出vuejs电子书高清无水印版插图(15)

评分及评论

无用户评分

来评个分数吧

  • 5 分
    0
  • 4 分
    0
  • 3 分
    0
  • 2 分
    0
  • 1 分
    0

Comments