data.hook 中的 `create` hook是哪来的
Closed this issue · 2 comments
a1mersnow commented
function invokeCreateHooks (vnode, insertedVnodeQueue) {
for (let i = 0; i < cbs.create.length; ++i) {
cbs.create[i](emptyNode, vnode)
}
i = vnode.data.hook // Reuse variable
if (isDef(i)) {
if (isDef(i.create)) i.create(emptyNode, vnode)
if (isDef(i.insert)) insertedVnodeQueue.push(vnode)
}
}
core/vdom/patch 里有这个方法
我找了好久都没找到 create
hook的来源,我去我的一个项目里加了断点,测了几个地方发现这个地方根本没有执行,所以i.create(emptyNode, vnode)
这一句到底是什么作用?
a1mersnow commented
单元测试倒是有用这个create hook 难道只是测试用……
ominus3 commented
vue 提供的 vnode 创建的过程中的一些钩子函数,下面这个我试了一下是会走到 i.create(emptyNode, vnode)
的
render(h) {
return h('div', {
hook: {
create() {
console.log('vnode create')
}
},
}, 123)
}