# diff算法与虚拟dom

# snabbdom
snabbdom：虚拟dom库，diff算法鼻祖。                                                                                            
github：[https://github.com/snabbdom/snabbdom](Link)

# diff算法
diff算法：精细化比较，实现最小化更新
- key表示是节点的唯一标识
- 只有是同一个虚拟节点，才能精细化比较(选择器和key值相同表示为同一个虚拟节点)
- 只进行同层比较，不会进行跨层比较(递归遍历)

四种命中查找：
1. 新前与旧前
2. 新后与旧后
3. 新后与旧前
4. 新前与旧后
命中一种就不再进行命中判断了

# 虚拟dom
虚拟dom：用js对象描述dom的层次结构，dom的一切属性在虚拟dom中都有对应的属性。
