我需要一种可靠的方法来调用vuejs中n个父级的父级组件。 在jQuery中寻找更像closet('element')的东西时,您不必指定有多少个父母或孩子,只需给它指定所需组件的名称,它将为您递归查找直到它找到合适的一个。
我只是想知道是否有这样的东西:this。$ find(component-name);或this。$ closest(component-name);
我在某人正在使用$ ref的地方阅读过,但我认为这不是该用例的正确选择吗?
当您不知道有多少父母时,这不是很可靠的$ parent。$ parent。
谢谢
答案 0 :(得分:2)
您可以使用while循环,遍历所有父组件。
getComponent(componentName) {
let component = null
let parent = this.$parent
while (parent && !component) {
if (parent.$options.name === componentName) {
component = parent
}
parent = parent.$parent
}
return component
},
示例:
mounted() {
console.log(this.getComponent('App'))
},