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

vue3中ref绑定的节点顺序错乱

问题复现

在这里插入图片描述

在这里插入图片描述

眨眼睛这个是修正过了的,小友的应该是ref直接绑定navigationTextList对吧,
按正常想法肯定是既然这个数组会动态更新,我只需要index不就能确定是哪个节点啦,倘若只是静态数据应该不会有什么问题,
⚠️但如果出现切换一整个数组数据等操作可就该出问题了,当然了没问题的小友应该也不会看这篇博客🤣🤣🤣

我们这里简略阐述一下出现这种情况的原因,因为vue的ref是不保证其中Dom数组的顺序的,因为vue的渲染顺序与我们所需的会有偏差,至于具体原因咱不得而知,知道的大佬可以私信或留言让眨眼睛涨涨知识,总结一下问题就是出现在默认顺序不一定按照我们循环渲染的顺序

解决方法

既然默认顺序不一定按照循环渲染顺序来,那我们手写一下ref的节点绑定呗,拿到当前节点与下标,手动将这个节点绑定在这个下标对应的数组元素上不就行了

关键代码内容:

//导航文本Dom组
let navigationTextList = ref([])

//手动设置导航文本DOM防止默认乱序
const setNavItemRef = (el, index) => {
    if (el) {
        navigationTextList.value[index] = (el)
    }
}
   //主要就是`:ref="(el) => setNavItemRef(el, index)"`这句
   <div class="truncate  text-center  font-[550]" @mouseover="checkNavigationTextOverflow(index)"
        :ref="(el) => setNavItemRef(el, index)">{{ item.name }}</div>

关键代码截图:

在这里插入图片描述

在这里插入图片描述


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

相关文章:

  • Camera Tuning中AE/AWB/AF基础知识介绍
  • 客户案例 | 如何利用Ansys工具提供互联系统(以及系统的系统),从而使“软件定义汽车”成为可能
  • Springboot整合Prometheus+grafana实现系统监控
  • 《云原生安全攻防》-- K8s安全防护思路
  • 三种单例实现
  • LLMs之PDF:zeroX(一款PDF到Markdown 的视觉模型转换工具)的简介、安装和使用方法、案例应用之详细攻略
  • day36
  • 【MySQL 12】事务管理 (带思维导图)
  • leetcode 147.对链表进行插入排序
  • Pr:代理预设
  • [E二叉树] lc110. 平衡二叉树(dfs+自底向上)
  • Java技术栈 —— Spark入门(二)之实时WordCount
  • 基于微信小程序的电动车租赁系统---附源码97332
  • 遇到的BUG及解决方法
  • 【读书笔记-《30天自制操作系统》-12】Day13
  • 监控平台之上报(未完成)
  • Python算法工程师面试整理-Python 编程技巧
  • 使用Ansible stat模块检查目录是否存在
  • 【Docker】Dockerfile实列-Nginx镜像构建
  • 类与ES6类之间的继承
  • 叶斯神经网络(BNN)在训练过程中损失函数不收敛或跳动剧烈可能是由多种因素
  • 全网最适合入门的面向对象编程教程:42 Python常用复合数据类型-collections容器数据类型
  • P02-Java流程控制基本结构
  • codetest
  • Linux下递归设置目标目录及其子目录和文件的权限
  • Qt/C++地址转坐标/坐标转地址/逆地址解析/支持百度高德腾讯和天地图