当前位置: 首页 > article >正文

vue3,form表单如何为遍历生成的form-item设置ref属性以及滚动定位

前沿

在开发过程中,部分组件都是通过 v-for 动态渲染出来的,那么如何给这些组件动态的设置ref呢?

问题案例

  <div class="home">
      <div class="collection-object" v-for="(item, index) in ruleForm.list" :key="item.id || index"
         ref="formRefs">
         <div>内容代码.....</div>
    </div>
  </div>
  <script setup name="Home">
  const formRefs = ref();
  </script>

会发现,无法获取到ref对象,如果单个ref,是可以通过该方式,进行获取;

解决方案

  <div class="home">
      <div class="collection-object" v-for="(item, index) in ruleForm.list" :key="item.id || index"
         :ref="setFormItemRef(item.id)">
         <div>内容代码.....</div>
    </div>
  </div>
  <script setup name="Home">
	const formItemRefs = ref({});
	const setFormItemRef = (refName) => {
	    return (el) => {
	        if(el) formItemRefs.value[refName] = el;
	    }
	};
	//滚动定位
	const scrollToItem = (refName) => {
	    const element = formItemRefs.value[refName];
	    if (element) {
	        element.scrollIntoView({ behavior: 'smooth', block: "center", inline: "nearest" });
	    }
	}
  </script>

http://www.kler.cn/a/414025.html

相关文章:

  • 二刷代码随想录第15天
  • 环境崩溃后的重新建立
  • AI 大模型如何重塑软件开发:未来的智能化变革
  • Linux中离线安装gcc
  • Springboot项目搭建(6)-前端登录跳转与Pinia实用
  • 前端小练习——星辰宇宙(JS没有上限!!!)
  • Diving into the STM32 HAL----- Real-Time Clock笔记
  • websocket前后端长连接之java部分
  • Apache SSI 远程命令执行漏洞
  • JVM知识点学习-1
  • 【Java从入门到放弃 之 条件判断与循环】
  • openjdk17 jvm byte数组 内存溢出 在C++源码体现
  • 使用TensorRT LLM的量化实践
  • BASLER工业相机维修不能触发拍照如何处理解决这个问题
  • Qt-系统相关(2)多线程网络
  • React 第九节 组件之间通讯之props 和回调函数
  • 数字IC后端实现之PR工具中如何避免出现一倍filler的缝隙?
  • Binder架构
  • 常见的Web安全漏洞——XSS
  • MySQL中group by实战详细案例笔记
  • 利用dockerCompose一键部署前后端分离项目
  • 大模型时代的具身智能系列专题(十八)
  • [BUUCTF]ciscn_2019_n_8
  • 【YOLO系列复现】二、基于YOLOv6的目标检测:YOLOv6训练自己的数据集(史诗级详细教程)
  • FBX福币交易所固态电池板块逆市掀涨停潮
  • [代码随想录算法01] 704. 二分查找、27. 移除元素、977有序数组的平方