组件递归创建的疑问
来源:3-5 patch(下)

_小_七_
2020-06-20
当组件里面包含组件的时候,会不断的递归创建,
我的疑问是:
vm.$node为组件的占位vnode,这句话是啥意思?什么是占位vnode?
vm._vnode为组件的渲染vnode,我理解这个就是当前vm实例的一个virtual dom
写回答
1回答
-
其实叫 “组件 vnode” 和 “子树 vnode” 更好理解。
我来举个例子说明,在父组件 App 中里引入了 Hello 组件:<template>
<div class="app">
<p>This is an app.</p>
<hello></hello>
</div>
</template>Hello 组件中是 <div> 标签包裹着一个 <p> 标签:
<template>
<div class="hello">
<p>Hello, Vue 3.0!</p>
</div>
</template>在 App 组件中, <hello> 节点渲染生成的 vnode ,我们称作“组件 vnode”,也就是 vm.$vnode。而 Hello 组件内部整个 DOM 节点对应的 vnode 就是执行 vm._render 渲染生成对应 vnode,我们可以把它称作“子树 vnode”,也就是 vm._vnode。
032020-06-21
相似问题