第3章
模版 —编译器-> 渲染函数 —生成-> 虚拟DOM —渲染器-> 真实DOM
- 虚拟DOM只是普通js对象
- 渲染器用原生DOM API创建真实DOM
第4章
过期的副作用
- 第一次
obj.foo++=>job()=>cleanup为空 => 进回调,注册第一次的cleanup,fetch发请求A,1000ms未返回 - => 第二次
obj.foo++=>job()=> 执行已设置的第一次的cleanup函数,将第一次的expired设置 => 进回调,注册第二次的cleanup,fetch发请求B,返回数据,设置finalData - => 请求A 1000ms后返回,第一次的
expired已被设置,不设置finalData
第5章
for..of是用来遍历可迭代对象的。一个对象或其原型实现了Symbol.iterator方法,这个对象就是可迭代的。
第8章
HTML Attributes的作用是设置与之对应的DOM Properties的初始值。
子节点3种基本类型:null/string/array,只有当新旧子节点都是array时才需要diff算法。
双端diff:旧新array的头头、尾尾、头尾、尾头作比较
快速diff
- 预处理掉相同的前置和后置节点
- 找到各个新子节点在旧子节点组中的位置,位置递增的不需要移动,因此最长递增子序列就是最长不需要移动的节点,移动剩余的
参考
- Vue.js设计与实现, 霍春阳