Vue v-for循环内部组件ref及外部组件ref获取
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
·

1.当ref和v-for一起使用时,通过this.$refs[ref名]获取的是所有组件的数组集合
<div v-for="item in 5" :key="'i'+item">
<el-form :model="formData" ref="formData" ></el-form>
</div>
console.log(this.$refs.formData)
打印结果
2.未使用v-for循环但仍然有多个ref相同的元素时获取只能得到最后一个元素
<el-form :model="formData" ref="formData" ></el-form>
<el-form :model="formData" ref="formData" ></el-form>
console.log(this.$refs.formData)
打印结果
3.v-for循环和外部ref相同时
1.最后的是for循环结尾,获取的是循环内部的ref元素集合外部的ref则被覆盖
<el-form :model="formData" ref="formData" ></el-form>
<el-form :model="formData" ref="formData" ></el-form>
<div v-for="item in 5" :key="'i'+item">
<el-form :model="formData" ref="formData" ></el-form>
</div>
console.log(this.$refs.formData)

2.最后的是外部的ref结尾,获取的是最后一个ref元素
<div v-for="item in 5" >
<el-form :model="formData" ref="formData" ></el-form>
</div>
<el-form :model="formData" ref="formData" ></el-form>
<el-form :model="formData" ref="formData" ></el-form>
console.log(this.$refs.formData)

3.如果希望可以获取循环和外部相同的集合可以将外部ref元素添加循环
例:
<el-form :model="formData" ref="formData" v-for="item in 1"></el-form>
<el-form :model="formData" ref="formData" v-for="item in 1"></el-form>
<div v-for="item in 5" >
<el-form :model="formData" ref="formData" ></el-form>
</div>
<el-form :model="formData" ref="formData" v-for="item in 1" ></el-form>
<el-form :model="formData" ref="formData" v-for="item in 1"></el-form>
console.log(this.$refs.formData)

vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:4 个月前 )
9e887079
[skip ci] 1 年前
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 1 年前
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)