第3章

模版 —编译器-> 渲染函数 —生成-> 虚拟DOM —渲染器-> 真实DOM

  • 虚拟DOM只是普通js对象
  • 渲染器用原生DOM API创建真实DOM

第4章

过期的副作用

  1. 第一次obj.foo++ => job() => cleanup为空 => 进回调,注册第一次的cleanupfetch发请求A,1000ms未返回
  2. => 第二次obj.foo++ => job() => 执行已设置的第一次的cleanup函数,将第一次的expired设置 => 进回调,注册第二次的cleanupfetch发请求B,返回数据,设置finalData
  3. => 请求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设计与实现, 霍春阳