Mutlaka derinden iç içe bileşenleri varsa aslında bazen mümkün değildir, $refs
gerekmez. Arama yaparken birkaç kez bu Q & A buldum, ama sonunda bu duruma sık sık rastladığımdan beri kendi çözümümüzü uygulamaya karar verdim. Döngü için eski okuldan ayrılmayın, birkaç nedenden ötürü gereklidir, bir için, x<descendants.length
için test ediyorum (len=descendants.length
gibi bir şey ayarlamaya ve buna karşı test yapmak yerine). Döngü için ikinci yığında iterek.
Birincisi, kullanımı:
let unPersonalizable = matchingDescendants(this, /a.checkimprintfiinformation$/, {first: true});
Uygulama: Bu kullanarak Vue v2 gelen insanlar için
function matchingDescendants(vm, matcher, options) {
let descendants = vm.$children;
let descendant;
let returnFirst = (options || {}).first;
let matches = [];
for (let x=0; x<descendants.length; x++) {
descendant = descendants[x];
if (matcher.test(descendant.$vnode.tag)) {
if (returnFirst) {
return descendant;
}
else {
matches.push(descendant);
}
}
for (let y=0, len = descendant.$children.length; y<len; y++) {
descendants.push(descendant.$children[y]);
}
}
return matches.length === 0 ? false : matches;
}
, bunun yerine böyle şablonda 'ref' niteliğini ayarlarsınız:' '. https://vuejs.org/v2/api/#ref –
thanksd