共计 898 个字符,预计需要花费 3 分钟才能阅读完成。
// 向上查找组件 context 为以后组件上下文对象,componentName 为组件名
const findUpwardComponent = (context, componentName) => {
let parent = context.$parent
let name = parent.$options.name
while (parent && (!name || !name.includes(componentName))) {
parent = parent.$parent
if (parent) name = parent.$options.name
}
return parent
}
// 查找兄弟组件
const findBrotherComponents = (ctx, componentName, exceptMe = true) => {
const $brothers = ctx.$parent.$children.filter(item => {return item.$options.name && item.$options.name.includes(componentName)
})
const index = $brothers.findIndex(item => item._uid === ctx._uid)
if (exceptMe && index > -1) $brothers.splice(index, 1)
return $brothers
}
// 向下查找
const findDownwardComponent = (context, componentName) => {
const $children = context.$children
let bean = null
if ($children.length) {for (const child of $children) {
const name = child.$options.name
if (name && name.includes(componentName)) {
bean = child
break
} else {bean = findDownwardComponent(child, componentName)
if (bean) break
}
}
}
return bean
}
正文完
发表至: javascript
2020-07-30