news 2026/6/22 17:30:49

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/6/15 15:26:50

FaceFusion如何应对低光照条件下的换脸挑战?

FaceFusion如何应对低光照条件下的换脸挑战&#xff1f; 在影视特效、虚拟主播和数字人内容爆发的今天&#xff0c;高质量的人脸替换技术已不再是实验室里的概念&#xff0c;而是实实在在驱动创意生产的引擎。然而&#xff0c;真实拍摄环境远比理想测试集复杂——尤其是在昏暗灯…

作者头像 李华
网站建设 2026/6/22 10:27:05

Mac U盘识别终极解决方案:3步快速修复指南

Mac U盘识别终极解决方案&#xff1a;3步快速修复指南 【免费下载链接】解决用U盘重装Mac系统中电脑无法识别U盘的问题分享 在重装Mac系统时&#xff0c;有时会遇到电脑无法识别U盘的问题&#xff0c;导致无法正常进行系统安装。本文将详细介绍如何解决这一问题&#xff0c;确保…

作者头像 李华
网站建设 2026/6/17 12:19:08

Win11 VMware蓝屏终极修复指南:5分钟搞定虚拟机兼容问题

Win11 VMware蓝屏终极修复指南&#xff1a;5分钟搞定虚拟机兼容问题 【免费下载链接】Win11环境下VMwareWorkstationPro运行虚拟机蓝屏修复指南 本资源文件旨在帮助用户在Windows 11环境下解决VMware Workstation Pro运行虚拟机时出现的蓝屏问题。通过安装Hyper-V服务&#xff…

作者头像 李华
网站建设 2026/6/22 15:05:35

Open3D轨迹优化终极指南:如何实现流畅相机运动

Open3D轨迹优化终极指南&#xff1a;如何实现流畅相机运动 【免费下载链接】Open3D 项目地址: https://gitcode.com/gh_mirrors/open/Open3D 在三维视觉处理中&#xff0c;相机轨迹的平滑度直接影响着重建质量和用户体验。Open3D作为开源的三维数据处理库&#xff0c;提…

作者头像 李华
网站建设 2026/6/22 16:57:53

5分钟快速验证:使用CMake构建你的第一个项目

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个CMake项目快速原型生成器&#xff0c;功能&#xff1a;1) 通过简单表单收集项目基本信息&#xff1b;2) 自动生成最小可行CMake配置&#xff1b;3) 提供一键测试构建&#…

作者头像 李华