将vnode.tag转为真实dom的一点疑惑
来源:2-8 update

qq_飞越疯人院_1
2019-05-10
vnode.elm = vnode.ns
? nodeOps.createElementNS(vnode.ns, tag)
: nodeOps.createElement(tag, vnode)
将tag转为了真实的dom。
function createElement$1(tagName, vnode) { // esm版本下
var elm = document.createElement(tagName);
...
console.log(document.createElement(tagName));
// 如果是打印创建函数,显示的就是空的dom
// 如: <div></div>
console.log(elm)
// 如果打印的是赋值后的elm变量 就是完整的带属性和子元素的dom
// 如:<div class='parent'><p>child</p></div>
// 属性的create们或者insert方法都是在创建dom函数之后运行了
// 这些属性是在哪里添加的了?
}
写回答
1回答
-
在 insert 之前会执行 invokeCreateHooks,它就会执行各个 module 的 create 钩子函数,对于 web 平台,它的 patch 函数会有很多 modules,在 platforms/web/runtime/modules 中定义,其中有处理 class 的,有处理 attrs 的,有处理 events 的等等。
132019-08-11
相似问题