我知道在Vue中,我可以使用
例如,我有一个名为
在
this.$parent
来获取虚拟DOM树中的上层组件。但是我希望得到不同的结果:获取渲染当前组件的组件。例如,我有一个名为
comp-container
的组件,其模板如下:<template>
<comp-a>
<comp-b></comp-b>
</comp-a>
</template>
在
comp-b
中,$parent
应该是comp-a
的一个实例,而不是我所期望的comp-container
。
我的当前方法是使用$parent
属性向上遍历,直到在$options.components
中找到comp-b
存在。这种方法目前有效,但似乎相当丑陋,并且如果comp-b
是全局注册组件,则会出现错误。是否有官方方法来解决这个问题?
通过<comp-b :container="this"></comp-b>
作为 props 传递父模板组件可能行得通,但是过于冗长而不受欢迎。
$parent.$vnode.tag
并查看它是否包含你的容器的名称。 - Bert