news 2026/7/26 14:48:32

Vue:使用v-if v-else加载两个el-table 在切换时,会出现数据在家混乱 数据加载不全的情况

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vue:使用v-if v-else加载两个el-table 在切换时,会出现数据在家混乱 数据加载不全的情况

目录

  • 一、 出现场景
  • 二、 出现原因
  • 三、解决方案

一、 出现场景

使用v-if v-else加载两个el-table 在切换时,会出现数据在家混乱 数据加载不全的情况

二、 出现原因

  • Vue的虚拟DOM复用机制:v-if/v-else 切换时,Vue 会尝试复用相同标签的 DOM 元素来提升性能,导致 el-table 的实例没有被完全重新初始化。
  • el-table 内部的数据渲染异步性:表格的列、数据渲染是异步的,复用 DOM 后表格的状态没有被重置,从而出现数据混乱。

三、解决方案

给两个表格添加唯一的 key 属性:通过给每个 el-table 设置唯一的 key,告诉 Vue 这是两个不同的元素,不要复用它们的 DOM,从而让表格每次切换时都重新渲染,避免数据混乱。

<template><div><!-- 切换按钮 --><el-button@click="toggleTable">切换表格</el-button><!-- 表格1:添加唯一key --><el-tablev-if="showTable1":key="'table1'"<!--唯一key-->:data="tableData1" border style="width: 100%; margin-bottom: 20px;" ><el-table-columnprop="name"label="姓名"/><el-table-columnprop="age"label="年龄"/></el-table><!-- 表格2:添加唯一key --><el-tablev-else:key="'table2'"<!--唯一key-->:data="tableData2" border style="width: 100%;" ><el-table-columnprop="id"label="编号"/><el-table-columnprop="product"label="产品名称"/></el-table></div></template><script>exportdefault{data(){return{showTable1:true,// 表格切换标识// 表格1数据tableData1:[{name:'张三',age:20},{name:'李四',age:22},{name:'王五',age:25}],// 表格2数据tableData2:[{id:1,product:'手机'},{id:2,product:'电脑'},{id:3,product:'平板'}]};},methods:{toggleTable(){this.showTable1=!this.showTable1;}}};</script>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/26 9:10:57

把手教你用工具一键生成小红书干货类笔记

你是不是也经常为写小红书笔记头疼&#xff1f;想发干货内容&#xff0c;却卡在标题没吸引力、正文逻辑乱、配图不会做……甚至花了一两个小时&#xff0c;发出去阅读量还不过千&#x1f62d; 我以前也是这样。每天憋一篇笔记&#xff0c;光排版加修图就折腾半天&#xff0c;结…

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

如何快速掌握DuiLib_Ultimate:Windows桌面应用开发的终极指南

如何快速掌握DuiLib_Ultimate&#xff1a;Windows桌面应用开发的终极指南 【免费下载链接】DuiLib_Ultimate DuiLib_Ultimate 是深耕 Windows 软件UI开发的利器&#xff0c; 以轻量化、高性能、易扩展 为核心&#xff0c;专为 Windows 平台打造极致桌面应用体验而生。 项目地…

作者头像 李华
网站建设 2026/7/22 14:40:14

高效渲染神器:Go语言unrolled/render的终极指南

高效渲染神器&#xff1a;Go语言unrolled/render的终极指南 【免费下载链接】render Go package for easily rendering JSON, XML, binary data, and HTML templates responses. 项目地址: https://gitcode.com/gh_mirrors/ren/render 在Go语言Web开发中&#xff0c;数据…

作者头像 李华
网站建设 2026/7/17 10:32:27

Zephyr RTOS嵌入式音频系统优化策略与性能提升实践

Zephyr RTOS嵌入式音频系统优化策略与性能提升实践 【免费下载链接】zephyr Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures. 项目地址: https://gitcode.com/GitHub_T…

作者头像 李华