Patch 函数
2021-07-19 14:17:21 5 举报
snabbdom 源码 patch 函数执行过程
作者其他创作
大纲/内容
否
是
其实这里就是判断 patch 函数是否是第一次调用
createElm 内部执行过程
调用 removeVnods 方法去移除 oldVnode 的真实 dom 元素
调用 insertBefore 将 vnode.elm 真实的 dom 元素插入到 oldVnode.elm dom 元素的前面
removeVnodes 方法内部执行过程
调用 createElm(vnode) 函数根据 vnode 参数创建真实的 dom 对象
调用 patchVnode 函数继续比对虚拟 dom
详见 patchVnode 执行流程
如果不是相同的虚拟 dom 对象,直接根据新传入的 vnode 对象来创建真实的dom 对象并添加到页面上
判断 oldVnode 是否是虚拟 dom
返回 vnode 作为下一次调用 patch 函数的 oldVnode参数
详见 removeVnodes 函数执行流程
执行各个模块中的 Pre 钩子函数
具体执行过程请看 createElm 的函数执行流程图
调用 emptyNodeAt(elm) 根据所传入的 dom 生成 虚拟 dom 对象
收藏
收藏
0 条评论
下一页