createElm 函数
2021-07-19 15:28:55 0 举报
createElm 函数执行过程
作者其他创作
大纲/内容
子节点is.array( vnode.children )
调用 createComment(vnode.text) 创建注释节点
判断当前 vnode 对象中有文本节点还是子节点
是
调用 data.hook.init(vnode)init 钩子函数的意义是允许用户在创建元素前最后一次对 vnode 对象进行修改
判断 vnode.data 中是否有 init 钩子
根据 vnode 对象创建 dom 对象
if (vnode.sel === '!')创建注释 dom 节点
遍历子节点数组取到每一个子节点 vnode 递归调用 createElm 来创建 子节点或文本节点并调用 appendChild 将所创建文本节点或是子节点添加 到 变量 elm dom 对象上,直至整个树形的数据结构都被遍历完
调用snabbdom 中所注册的各个模块中的create的钩子
vnode.elm = createTextNode(vnode.text) 创建文本节点
createElm(vnode,insertedVnodeQueue)
else if ( vnode.sel !== undefined )创建文本节点或子节点
return vnode.elm
解析 vnode.sel 属性,根据 sel 属性创建对应的 html 标签。如果有 id 选择器或是 class 选择器,将其添加到变量 elm dom 元素上
elsevnode.sel 为 undefined情况下
调用 createTextNode 创建文本节点
收藏
收藏
0 条评论
下一页