vm.$vnode表示vue实例的父虚拟node,这个要怎么理解呢

来源:2-3 Vue 实例挂载的实现

慕娘6538821

2019-09-14

表示null 时是根Vue实例又该如何理解呢

写回答

1回答

ustbhuangyi

2019-09-15

比如在父组件中编写
<child></child>
其中,Child 组件是自定义子组件。
那么这个 child 节点会在父组件的渲染过程中生成“组件 vnode”,并且在父组件的 patch 过程中,递归初始化 Child 组件,同时把这个 “组件 vnode”当做 parentVnode 传入,然后在 Child 组件的 render 过程中,执行 vm.$vnode = parentVnode,所以可以理解这个 vm.$vnode 就是当前 Child 组件实例的父虚拟 vnode。
如果 vm.$vnode 是 null,说明 vm 没有父虚拟 vnode,那么 vm 就是根实例了。

0
1
慕娘6538821
非常感谢!
2019-09-15
共1条回复

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4989 学习 · 1038 问题

查看课程