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

vue3获取循环中的ref

方法一:使用 ref数组

<template><div><div v-for="(item, index) in items" :key="index"><input ref="inputRefs" :placeholder="'Input ' + index" /></div><button @click="focusFirst">Focus First Input</button></div>
</template><script setup>
import { ref } from 'vue'// 定义一个 ref,用来存放 v-for 中的 input 元素
const inputRefs = ref([])const items = [1, 2, 3, 4]const focusFirst = () => {// inputRefs.value 是一个数组,包含所有循环中的 input DOM 元素if (inputRefs.value[0]) {inputRefs.value[0].focus()}
}
</script>

方法二:使用函数形式的 ref

<template><div><div v-for="(item, index) in items" :key="index"><input :ref="el => setItemRef(el, index)" :placeholder="'Input ' + index" /></div><button @click="focusInput(1)">Focus Input 1</button></div>
</template><script setup>
import { ref, onBeforeUpdate } from 'vue'const items = [1, 2, 3, 4]
const itemRefs = ref({}) // 用对象存储,以 index 或 id 为 key// 用于存储 ref 的函数
const setItemRef = (el, index) => {if (el) {itemRefs.value[index] = el}
}// 在组件更新前清空旧的 ref,避免重复引用(重要!)
onBeforeUpdate(() => {itemRefs.value = {}
})const focusInput = (index) => {const el = itemRefs.value[index]if (el) {el.focus()}
}
</script>

http://www.dtcms.com/a/596487.html

相关文章:

  • 11.11 脚本网页 跳棋
  • uni-app:实现快递的节点功能
  • 使用虚拟机搭建简易K8s实验环境的一种方法
  • 构建下一代临床AI诊断系统:基于CPC-Bench基准的工程化路线图(上)
  • Electron 原理浅析
  • Git 命令全攻略:从入门到实战
  • React底层原理
  • tensorflow 图像分类 之四
  • GEO优化:针对生成式AI内容分发逻辑的四大维度优化策略
  • 做a手机视频在线观看网站网页程序开发采购
  • USP-Ulysses+Ring-Attention技术原理
  • mirage 接口mock 拦截
  • flash网站设计教程北京建设网上银行
  • 高端网站建设设计公司有哪些wordpress网站迁移后插件
  • redis进阶 - 底层数据结构
  • 【自然语言处理】语料库:自然语言处理的基石资源与发展全景
  • Rust: 量化策略回测与简易线程池构建、子线程执行观测
  • 基于systemd的系统负载控制与检测方案
  • 闲谈-三十而已
  • LangChain 是一个 **大语言模型(LLM)应用开发框架**
  • 从RAM/ROM到Redis:项目架构设计的存储智慧
  • 高中课程免费教学网站网页塔防游戏排行榜
  • Access导出带图表的 HTML 报表:技术实现详解
  • 郑州上海做网站的公司嘉兴网站建设有前途吗
  • 学习JavaScript进阶记录(二)
  • 优化用户体验的小点:乐观更新链路 双数据库查询
  • C++—list:list的使用及模拟实现
  • EasyExcel 与 Apache POI 版本冲突导致的 `NoSuchMethodError` 异常
  • WebServer04
  • 品牌网站建设技术网站搜索引擎优化诊断