如果ref的Element是v-for,那么ref[key]会变成一个数组来存储每一个ref Element。先检查当前元素再接着网父节点检查。
// src/compiler/parser/index.js
function processRef (el) {
const ref = getBindingAttr(el, 'ref')
if (ref) {
el.ref = ref
el.refInFor = checkInFor(el)
}
}
// src/compiler/parser/index.js
function checkInFor (el: ASTElement): boolean {
let parent = el
while (parent) {
if (parent.for !== undefined) {
return true
}
parent = parent.parent
}
return false
}