diff算法与虚拟dom
snabbdom
snabbdom:虚拟dom库,diff算法鼻祖。
github:https://github.com/snabbdom/snabbdom
diff算法
diff算法:精细化比较,实现最小化更新
- key表示是节点的唯一标识
- 只有是同一个虚拟节点,才能精细化比较(选择器和key值相同表示为同一个虚拟节点)
- 只进行同层比较,不会进行跨层比较(递归遍历)
四种命中查找:
- 新前与旧前
- 新后与旧后
- 新后与旧前
- 新前与旧后 命中一种就不再进行命中判断了
虚拟dom
虚拟dom:用js对象描述dom的层次结构,dom的一切属性在虚拟dom中都有对应的属性。