v-for 中的 Ref 需要绑定函数

在 Vue 2 中,在 v-for 里使用的 ​​ref​​​ 属性,​​this.$refs​​ 会得到一个数组。

<div v-for="item in 2" :ref="setItemRef"></div>

mounted () {
console.log(this.$refs.setItemRef) // [div, div]
}

在 Vue 3 中,不会自动创建数组。要从单个绑定获取多个 ​​ref​​,需要将 ref 绑定到一个更灵活的函数上 (这是一个新特性):

<div v-for="item in 2" :ref="setItemRef"></div>

data: {
list: []
},
mounted () {
console.log(this.list) // [div, div]
}
methods: {
setItemRef (el) {
this.list.push(el)
}
}