Vue3 + Element Plus 获取表格列信息

在 Vue 3 和 Element Plus 中,可以通过以下步骤获取表格的列信息:

实现步骤:

  1. 使用 ref 绑定表格实例

  2. 通过表格实例的 store.states.columns 获取列数据

  3. 处理列信息(过滤隐藏列、处理嵌套表头等)

示例代码:

vue

复制

下载

<template><el-table ref="tableRef" :data="tableData"><el-table-column prop="date" label="日期" width="180" /><el-table-column prop="name" label="姓名" width="180" /><el-table-column prop="address" label="地址" /><el-table-column v-if="showColumn" prop="phone" label="电话" /></el-table>
</template><script setup>
import { ref, onMounted } from 'vue';const tableRef = ref(null); // 表格实例引用
const tableData = [/* 你的数据 */];
const showColumn = ref(true); // 控制列的显示// 获取表格列信息的方法
const getTableColumns = () => {if (!tableRef.value) return [];// 获取原始列数据(包含所有列,包括隐藏列和嵌套列)const rawColumns = tableRef.value.store.states.columns;// 过滤并处理列信息return rawColumns.filter(col => col?.property) // 过滤有效列(可根据需要调整).map(col => ({prop: col.property,     // 列对应的数据字段label: col.label,       // 列标题width: col.realWidth,   // 列实际宽度visible: !col.isColumnHidden // 是否可见}));
};onMounted(() => {// 在组件挂载后获取列信息const columns = getTableColumns();console.log('表格列信息:', columns);
});
</script>

关键点说明:

  1. 表格实例绑定

    html

    复制

    下载

    运行

    <el-table ref="tableRef"> <!-- 绑定 ref -->
  2. 获取列数据

    js

    复制

    下载

    tableRef.value.store.states.columns
  3. 列信息处理

    • property: 对应 prop 属性(数据字段)

    • label: 表头显示文本

    • realWidth: 列的实际宽度

    • isColumnHidden: 列是否被隐藏(动态列或 v-if 控制)

处理嵌套表头:

如果需要处理嵌套表头(多级表头),需递归遍历:

js

复制

下载

const getNestedColumns = (columns) => {return columns.map(col => ({prop: col.property,label: col.label,children: col.children ? getNestedColumns(col.children) : null}));
};const nestedColumns = getNestedColumns(tableRef.value.store.states.columns);

注意事项:

  1. 访问时机:确保在表格渲染完成后获取(如在 onMounted 或事件回调中)

  2. 动态列:如果使用 v-if 动态控制列,获取前需确保列已渲染

  3. 内部属性store.states.columns 是 Element Plus 内部属性,不同版本可能有差异

替代方案(推荐):

如果只需要列定义,建议自行维护一个列配置数组:

js

复制

下载

const columnsConfig = ref([{ prop: 'date', label: '日期' },{ prop: 'name', label: '姓名' },{ prop: 'address', label: '地址' }
]);// 在模板中循环渲染
<el-table-column v-for="col in columnsConfig" :key="col.prop" ... />

提示:直接访问组件内部属性可能有版本兼容风险,优先考虑自行维护列配置数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/909358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

logger2js - JavaScript日志与调试工具库

logger2js - JavaScript日志与调试工具库 logger2js是一个功能强大的前端JavaScript日志与调试工具库&#xff0c;提供了丰富的日志输出、性能测试和代码调试功能。该库支持配置化引入&#xff0c;包含5种皮肤风格和丰富的API接口&#xff0c;如 a l e r t 增强方法、 alert增…

Stone 3D使用RemoteMesh组件极大的缩小工程文件尺寸

Stone 3D的工程文件tsp默认包含了场景中所有的对象和数据&#xff0c;这样的好处是tsp可以单独离线保存&#xff0c;但坏处是tsp文件通常偏大。 解决这个问题的方法是把外部glb模型文件通过RemoteMesh组件来加载。 首先创建一个空实体&#xff0c;然后给该空实体添加RemoteMe…

【深入剖析】攻克 Java 并发的基石:Java 内存模型 (JMM) 原理与实践指南

0.引言 理解 JMM (Java Memory Model - JMM) 是掌握 Java 并发编程的关键&#xff0c;它定义了多线程环境下&#xff0c;线程如何与主内存以及彼此之间交互内存数据。 核心目标&#xff1a; JMM 旨在解决多线程编程中的三个核心问题&#xff1a; 原子性 (Atomicity)&#xf…

【Three.js】初识 Three.js

Threejs介绍 我们开发 webgl 主要是使用 threejs 这个库&#xff0c;因为 webGL太难用&#xff0c;太复杂&#xff01;但是现代浏览器都支持WebGL&#xff0c;这样我们就不必使用Flash、Java等插件就能在浏览器中创建三维图形。 threejs 它提供-一个很简单的关于WebGL特性的J…

【经验总结】ECU休眠后连续发送NM报文3S后ECU网络才被唤醒问题分析

目录 前言 正文 1.问题描述 2.问题分析 3.验证猜想 4.总结 前言 ECU的上下电/休眠唤醒在ECU开发设计过程中最容易出问题且都为严重问题,最近在项目开发过程中遇到ECU休眠状态下连续发送NM报文3S后才能唤醒CAN网络的问题,解决问题比较顺利,但分析过程中涉及到的网络休…

企业架构框架深入解析:TOGAF、Zachman Framework、FEAF与Gartner EA Framework

执行摘要 企业架构&#xff08;EA&#xff09;是一项至关重要的实践&#xff0c;它使组织能够协调其业务战略、运营流程和技术基础设施&#xff0c;以实现整体战略目标。企业架构框架作为结构化的方法论和综合性工具&#xff0c;旨在管理企业级系统的固有复杂性&#xff0c;提…

数字化动态ID随机水印和ID跑马灯实现教育视频防录屏

摘要&#xff1a;数字化动态ID随机水印和ID跑马灯技术可以有效保护数字教育资源。动态水印将用户信息随机显示在视频上且不可去除&#xff0c;能追踪录屏者并震慑盗版行为。ID跑马灯则自定义显示观看者信息&#xff0c;便于追踪盗版源头并提供法律证据。这些技术大幅增加盗版成…

< 自用文儿 腾讯云 VPS > Ubuntu 24 系统,基本设置

前言&#xff1a; 3 月份买的腾讯云的这台 VPS&#xff0c;刚发现现在退款&#xff0c;只能返回 0 元。测试应用已经迁移到JD&#xff0c;清除内容太麻烦&#xff0c;重装更简单。 因为配合政策&#xff0c;国内的云主机都有两个 IP 地址&#xff0c;一个内网&#xff0c;一个…

React ajax中的跨域以及代理服务器

Axios的诞生 为什么会诞生Axios&#xff1f;说到Axios我们就不得不说下Ajax。最初的旧浏览器页面在向服务器请求数据时&#xff0c;由于返回的是整个页面的数据&#xff0c;所以整个页面都会强制刷新一下&#xff0c;这对于用户来讲并不是很友好。因为当我们只需要请求部分数据…

HOT 100 | 73.矩阵置零、54.螺旋矩阵、48.旋转图像

一、73. 矩阵置零 73. 矩阵置零 - 力扣&#xff08;LeetCode&#xff09; 1. 解题思路 1. 使用两个数组分别标记每行每列是否有0&#xff0c;初始化全为False&#xff0c;遇到0就变成True。 2. 遍历矩阵&#xff0c;遇到0就将False改成True。 3. 再次遍历矩阵&#xff0c;更…

神经网络压缩

网络压缩技术学习笔记 以下笔记基于提供的 PDF 文件&#xff08;tiny_v7.pdf&#xff09;&#xff0c;总结了网络压缩技术的核心概念、实现原理和方法&#xff0c;特别针对多模态大模型、空间智能以及未来智能体&#xff08;Agent&#xff09;和通用人工智能&#xff08;AGI&a…

论索引影响性能的一面④ 索引失踪之谜【上】

梁敬彬梁敬弘兄弟出品 往期回顾 论索引影响性能的一面①索引的各种开销 论索引影响性能的一面②索引的使用失效 论索引影响性能的一面③ 索引开销与经典案例 开篇&#xff1a;DBA的深夜“寻人启事” 作为数据库的守护者&#xff0c;我们最信赖的伙伴莫过于“索引”。它如同一…

java集合(九) ---- Stack 类

目录 九、Stack 类 9.1 位置 9.2 特点 9.3 栈 9.4 构造方法 9.5 常用方法 9.6 注意点&#xff1a;循环遍历 Stack 类 九、Stack 类 9.1 位置 Stack 类位于 java.util 包下 9.2 特点 Stack 类是 Vector 类的子类Stack 类对标于数据结构中的栈结构 9.3 栈 定义&…

ARXML可视化转换工具使用说明

ARXML可视化转换工具 | 详细使用指南与说明 &#x1f4dd; 前言 自上篇文章《聊聊ARXML解析工具&#xff1a;我们是如何摆脱昂贵商业软件的》发布以来&#xff0c;收到了众多朋友的关注和咨询&#xff0c;这让我倍感荣幸&#xff01; 新朋友请注意&#xff1a;如果您还没有阅…

松胜与奥佳华按摩椅:普惠科技与医疗级体验的碰撞

在智能健康设备快速普及的今天&#xff0c;按摩椅已从奢侈品转变为家庭健康管理的重要工具。面对市场上琳琅满目的品牌&#xff0c;松胜与奥佳华凭借截然不同的发展路径&#xff0c;各自开辟出特色鲜明的赛道&#xff1a;前者以“技术普惠”理念打破高端按摩椅的价格壁垒&#…

一起学习Web 后端——PHP(二):深入理解字符与函数的使用

一、前言 在上一讲中&#xff0c;我们主要讲PHP的相关知识。本节我们将继续深入&#xff0c;学习&#xff1a; PHP 中各种语法字符、符号的含义与用法&#xff1b; PHP 中常用函数的种类、定义方式与实际应用。 这些知识是构建 Web 后端逻辑的基础&#xff0c;对于后期编写…

【Bluedroid】蓝牙启动之 GAP_Init 流程源码解析

蓝牙 GAP(通用访问配置文件)模块是蓝牙协议栈的核心组件,负责设备发现、连接管理及基础属性暴露等关键功能。本文围绕 Android蓝牙协议栈 GAP 模块的初始化流程与连接管理实现展开,结合代码解析其核心函数(GAP_Init、gap_conn_init、gap_attr_db_init)的功能逻辑,以及关…

最新四六级写作好词好句锦囊(持续更新中)

完整版四六级备考攻略可见另一篇博客~~&#xff08;喜欢的留个点赞收藏再走呗~~&#xff09; ​​​​​​四六级备考攻略-CSDN博客 一、通用 1、词组 2、单词 3、句型 二、老龄化、老年人 三、学习、社交、社会实践 四、文化、习俗 五、数字素养、数字技能 六、资…

Java 通用实体验证框架:从业务需求到工程化实践【生产级 - 适用于订单合并前置校验】

Java 通用实体验证框架&#xff1a;从业务需求到工程化实践【适用于订单合并前置校验】 一、业务验证痛点与需求背景 1. 传统验证方式的困境 传统验证方式存在代码冗余、维护成本高和扩展性差等问题。相同的验证逻辑在不同模块重复编写&#xff0c;修改验证规则时需要同步修…

PyArk飘云阁出品的ARK工具

PyArk是由飘云阁&#xff08;PiaoYunGe&#xff09;开发的一款功能强大的系统安全分析工具&#xff0c;主要用于Windows环境下的内核级检测与分析。该工具集成了进程管理、驱动模块扫描、内核及应用层钩子检测、进程注入等核心功能&#xff0c;旨在帮助安全研究人员深入识别潜在…