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>
相关推荐
水冗水孚38 分钟前
使用useSearchParams或router.replace拼接地址栏——解决tab标签页刷新状态丢失问题
vue.js·react.js
阳先森39 分钟前
vue 数据更新到视图变化全过程
前端·vue.js
Sobeit40 分钟前
Vue 3.5 响应式设计与实现流程全解析
前端·vue.js
Live&&learn1 小时前
seo-使用nuxt定义页面标题和meta等信息
vue.js·性能优化
草履虫建模1 小时前
RuoYi OpenAPI集成从单体到微服务改造全过程记录
java·运维·vue.js·spring cloud·微服务·云原生·架构
Benjamin就是我1 小时前
Vue3项目使用高德地图生成沿途轨迹并通过htmltocanvas生成图片
vue.js
阿里小阿希4 小时前
Vue 3 表单数据缓存架构设计:从问题到解决方案
前端·vue.js·缓存
所愿ღ5 小时前
Vue框架进阶
前端·vue.js·笔记·前端框架
每天吃饭的羊7 小时前
面试题:如何对一个div做监听,监听他的长宽的大小变化
前端·javascript·vue.js
前端小巷子8 小时前
Vue脚手架模式与环境变量
前端·vue.js·面试