news 2026/7/7 13:14:50

Vue2 中 v-if / v-else-if + el-table 组件复用坑问题总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vue2 中 v-if / v-else-if + el-table 组件复用坑问题总结

1. 问题背景

vue2项目中,写法如下:

<divv-if="priceType ==='FIXED_PRICE'"><el-table:data="fixedRules"/></div><divv-else-if="priceType ==='RANGE_FIXED_PRICE'"><el-table:data="intervalFixedRules"/></div><divv-else-if="priceType ==='RANGE_MAX_PRICE'"><el-table:data="intervalMaxRules"/></div>

在切换 priceType 时,出现以下异常现象:

  1. 表头错乱 / 不刷新
  2. 数据显示串表
  3. 列结构残留
  4. 滚动条异常

数据本身是正确的,但UI显示不正确

2. 问题原因

  • 在vue2中,v-if / v-else-if组件复用机制

    • 在vue2中,同一层级下的v-if / v-else-if / v-else 会复用同一个组件实例。
  • el-table组件内部维护了大量状态:

    • columns配置缓存。
    • 表头结构
    • 行列计算结果
    • 滚动容器状态
    • 布局测量结果

所以,当DOM结构相似,只是字段含义不同时,vue判断其为‘高度可复用组件’,且el-table内部状态无法自动清理

3. 处理方案

为每个el-talbe设置唯一key

<divv-if="priceType ==='FIXED_PRICE'"><el-table:data="fixedRules"key="FIXED_PRICE"/></div><divv-else-if="priceType ==='RANGE_FIXED_PRICE'"><el-table:data="intervalFixedRules"key="RANGE_FIXED_PRICE"/></div><divv-else-if="priceType ==='RANGE_MAX_PRICE'"><el-table:data="intervalMaxRules"key="RANGE_MAX_PRICE"/></div>
  • 说明
    key不同,vue会强制销毁并重建组件,这个时候el-table内部状态会重置,priceType变化时,表格也会显示正常
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 18:54:01

AI助力Java+OpenCV:5分钟实现智能图像处理

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 请生成一个基于Java和OpenCV的图像处理项目代码&#xff0c;要求实现以下功能&#xff1a;1.读取本地图片&#xff1b;2.使用OpenCV进行人脸检测&#xff1b;3.在检测到的人脸区域绘…

作者头像 李华
网站建设 2026/7/7 11:25:54

5大实战技巧:让1Panel服务器面板在99%浏览器中完美运行

5大实战技巧&#xff1a;让1Panel服务器面板在99%浏览器中完美运行 【免费下载链接】1Panel 项目地址: https://gitcode.com/GitHub_Trending/1p/1Panel 你是否遇到过这样的场景&#xff1a;精心设计的服务器管理界面&#xff0c;在客户的老旧浏览器中变得支离破碎&…

作者头像 李华
网站建设 2026/7/7 19:32:22

重组兔单抗:如何革新病理诊断的精准度与可靠性?

一、传统抗体技术面临哪些技术瓶颈&#xff1f;病理诊断中的免疫组织化学技术高度依赖于抗体试剂的质量特性。传统鼠源单克隆抗体存在表位识别多样性有限、亲和力相对较低等问题&#xff1b;而多克隆抗体则因识别多个表位而易产生交叉反应&#xff0c;导致背景染色和非特异性信…

作者头像 李华
网站建设 2026/7/7 19:29:46

高校教学新帮手:Kotaemon搭建课程答疑机器人

高校教学新帮手&#xff1a;Kotaemon搭建课程答疑机器人在高校课堂里&#xff0c;一个常见的场景是&#xff1a;下课铃响后&#xff0c;三五个学生围住讲台前的老师&#xff0c;反复询问同一个知识点&#xff1b;而更多未到场的学生&#xff0c;则在微信群或学习平台上留下一连…

作者头像 李华
网站建设 2026/7/7 12:27:12

Paparazzi:终极Android UI自动化测试解决方案

Paparazzi&#xff1a;终极Android UI自动化测试解决方案 【免费下载链接】paparazzi Render your Android screens without a physical device or emulator 项目地址: https://gitcode.com/gh_mirrors/pa/paparazzi 在移动应用开发领域&#xff0c;UI测试一直是保证产品…

作者头像 李华
网站建设 2026/7/7 19:16:58

Zod终极指南:如何用TypeScript架构验证打造零错误应用

Zod终极指南&#xff1a;如何用TypeScript架构验证打造零错误应用 【免费下载链接】zod TypeScript-first schema validation with static type inference 项目地址: https://gitcode.com/GitHub_Trending/zo/zod 在当今数据驱动的开发世界中&#xff0c;Zod架构验证库正…

作者头像 李华