news 2026/7/10 0:47:31

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/9 19:14:15

Gemini API流式响应技术深度解析与实战应用

Gemini API流式响应技术深度解析与实战应用 【免费下载链接】cookbook A collection of guides and examples for the Gemini API. 项目地址: https://gitcode.com/GitHub_Trending/coo/cookbook 在当今AI应用开发领域&#xff0c;响应延迟一直是影响用户体验的关键瓶颈…

作者头像 李华
网站建设 2026/7/9 1:40:53

Odigos革命性可观测性平台:eBPF与OpenTelemetry的终极融合指南

Odigos革命性可观测性平台&#xff1a;eBPF与OpenTelemetry的终极融合指南 【免费下载链接】odigos Distributed tracing without code changes. &#x1f680; Instantly monitor any application using OpenTelemetry and eBPF 项目地址: https://gitcode.com/gh_mirrors/o…

作者头像 李华
网站建设 2026/7/9 23:50:40

解锁生物启发的智能计算:snnTorch脉冲神经网络框架深度解析

解锁生物启发的智能计算&#xff1a;snnTorch脉冲神经网络框架深度解析 【免费下载链接】snntorch Deep and online learning with spiking neural networks in Python 项目地址: https://gitcode.com/gh_mirrors/sn/snntorch 在人工智能技术日新月异的今天&#xff0c;…

作者头像 李华
网站建设 2026/7/9 23:50:56

FaceFusion支持4K输入输出,高清换脸不再是难题

FaceFusion支持4K输入输出&#xff0c;高清换脸不再是难题 在影视特效、虚拟偶像和数字人内容爆发的今天&#xff0c;观众对视觉真实感的要求越来越高。一张“塑料脸”或边缘模糊的换脸画面&#xff0c;早已无法通过4K大屏的检验。而就在几年前&#xff0c;大多数开源换脸工具还…

作者头像 李华
网站建设 2026/7/9 2:16:54

终极免费VSCode美化方案:60+动漫主题打造个性化编程空间

终极免费VSCode美化方案&#xff1a;60动漫主题打造个性化编程空间 【免费下载链接】doki-theme-vscode Cute anime character themes for VS-Code. 项目地址: https://gitcode.com/gh_mirrors/do/doki-theme-vscode 还在使用单调乏味的默认编辑器主题吗&#xff1f;dok…

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

AI智能优化终极指南:10倍性能提升的完整教程

AI智能优化终极指南&#xff1a;10倍性能提升的完整教程 【免费下载链接】llm-course 通过提供路线图和Colab笔记本的课程&#xff0c;助您入门大型语言模型&#xff08;LLMs&#xff09;领域。 项目地址: https://gitcode.com/GitHub_Trending/ll/llm-course 你是否曾经…

作者头像 李华