【发布时间】:2017-11-07 02:32:26
【问题描述】:
我知道在vue中,我可以使用this.$parent来获取vdom树中的上层组件。但我期待一些不同的东西:获取呈现当前组件的组件。
例如,我有一个带有模板的组件(名为comp-container):
<template>
<comp-a>
<comp-b></comp-b>
</comp-a>
</template>
在comp-b 中,$parent 将是comp-a 的一个实例,而不是我所期待的comp-container。
我目前的方法是遍历$parent 属性,直到我发现comp-b 存在于$options.components 中。这种方法目前有效,但如果comp-b 是一个全局注册组件,它看起来很丑陋并且会中断。有没有官方的方法可以做到这一点?
通过 props 将父模板组件传递为 <comp-b :container="this"></comp-b> 可能会完成这项工作,但它太冗长而无法被喜欢。
【问题讨论】:
-
你需要访问父组件的原因是什么?目前我没有多大意义。
-
我不确定我是否完全理解您要执行的操作,但您可以检查
$parent.$vnode.tag并检查它是否包含您的容器名称。 -
@TwilightSun - 你知道怎么做吗?
标签: vue.js vuejs2 vue-component