Vue 的虚拟 DOM 方案衍生于snabbdom 工具,所以我们来看下snabbdom都做了什么
snabbdom只有200行的代码量,非常适合阅读。
snabbdom
核心关注点
关于虚拟DOM的实现以下几个核心内容是我们必须关注的:
- compile 将真实DOM编译为Vnode
- diff 对比新旧Vnode,知道两个Vnode间的变化
- patch 将上一步中对比得到的变化以补丁的方式更新到真实DOM中
源码阅读
snabbdom的源码采用tyscript编写
文件结构:
1 | src |
从上述文件结果可看出snabbdom.ts 是整个代码的主线, 那么我们从这里入手开始看源码