vue3中ref动态绑定【技巧】

平常时候绑定ref

xml 复制代码
<script>
const tempRef = ref<HTMLElement>()
</script>
<template>
<div ref='tempRef'></div>
</template>

在一些场景需要动态绑定ref, ref设置是未知的需要根据动态数据来决定,那么我们需要定义一个对象进行存储绑定的ref,例:

typescript 复制代码
<script>
interface DataItem {
    id:string,
    name:string
}
const dataList:DataItem[] = [
{
    id="1",
    name:'标题1'
},
{
    id="2",
    name:'标题2'
},
{
    id="3",
    name:'标题3'
}
]
const tempRefs = ref({} as any);
const handleSetTempMap = (el: Element, item: DataItem)=>{
    if (el) {
    tempRefs.value[`temp_{item.id}`] = el;
  }
}


</script>
<template>
<div v-for="item in dataList" :key="item.id" 
:ref="(el:Element) => handleSetTempMap(el, item)"
>
</div>
</template>
相关推荐
码上暴富6 小时前
el-table表格全屏/管理显示字段/导出功能封装
vue.js
超人不会飞_Jay7 小时前
26.6.3Vue笔记
前端·vue.js·笔记
御坂100277 小时前
Vue - @change应用实现下拉框联动功能
前端·javascript·vue.js
瘦瘦瘦大人7 小时前
Vue 项目实现关闭/刷新浏览器窗口前的离开确认提示
前端·javascript·vue.js
belong_my_offer7 小时前
认识前端路由& VSCode 实操
vue.js
吃阿茶搽8 小时前
大模型RAG实战,从被骂不靠谱到成为部门MVP,我的踩坑全记录
vue.js
布兰妮甜8 小时前
Vue 视图不更新?常见赋值踩坑点汇总
前端·javascript·vue.js·vue踩坑·vue视图不更新
rising start8 小时前
三、Vue3 模板语法
vue.js
zhedream9 小时前
十万级列表的跨页多选方案:el-table 踩坑与治理实践
vue.js·element
rising start9 小时前
二、Vue3 核心基础:API 对比、Setup 与响应式详解
前端·javascript·vue.js