vxe-table 使用 spanMethod 合并卡顿的解决方案

news/2025/12/14 12:39:31/文章来源:https://www.cnblogs.com/qaz666/p/19303034

vxe-table 使用 spanMethod 合并卡顿的解决方案,当业务需求需要合并时,由于表格数据有几千条,使用该合并后不支持虚拟滚动会卡顿。通过查看官网,发现应该使用 merge-cells 来合并单元格,不仅使用非常简单,还支持虚拟滚动,只需要指定行号和列号,合并数量就可以临时合并单元格,需要注意,官网说明是临时合并。也就是合并后如果不重新更新列或者重新加载数据,是没问题的,但是需要需要重新加载数据,那么临时合并就会丢失,需要重新赋值一下 merge-cells 就可以重新临时合并了。

查看官网:https://vxetable.cn
gitbub:https://github.com/x-extends/vxe-table
gitee:https://gitee.com/x-extends/vxe-table

效果

以下通过使用一个比较复杂的场景,包括100列*500行,带左右冻结列和表尾合计,渲染就比较复杂了。测试了一下 5万行和5千列 都比较流畅,比之前流畅太多倍了.

避免合并一整行或一整列,当所有行都被合并为一个单元格时就等同于关闭纵向虚拟滚动,当所有列都被合并为一个单元格时就等同于关闭横向虚拟滚动。应该避免合并范围过大的使用场景.

Video_2025-12-02_105507-ezgif.com-video-to-gif-converter (1)

代码

有几点需要注意:
如果使用 merge-cells 方式则是全功能的,支持虚拟滚动;
如果使用 span-method 方式的虚拟滚动支持部分功能,存在功能限制:如果进行跨行合并,则不支持纵向虚拟滚动;如果进行跨列合并,则不支持横向虚拟滚动

<template><div><vxe-grid v-bind="gridOptions"></vxe-grid></div>
</template><script setup>
import { reactive } from 'vue'const gridOptions = reactive({border: true,showOverflow: true,showHeaderOverflow: true,showFooterOverflow: true,showFooter: true,height: 600,virtualYConfig: {enabled: true,gt: 0},virtualXConfig: {enabled: true,gt: 0},mergeCells: [{ row: 2, col: 1, rowspan: 4, colspan: 2 },{ row: 16, col: 2, rowspan: 12, colspan: 3 },{ row: 30, col: 2, rowspan: 5, colspan: 2 },{ row: 100, col: 1, rowspan: 18, colspan: 3 },{ row: 150, col: 1, rowspan: 8, colspan: 2 }],mergeFooterItems: [{ row: 0, col: 1, rowspan: 2, colspan: 1 }],columns: [{ field: 'seq', type: 'seq', width: 70, fixed: 'left' },{ field: 'name', title: 'Name', minWidth: 300 },{title: '分组1',children: [{ field: 'role', title: 'Role', minWidth: 300 },{ field: 'sex', title: 'Sex', minWidth: 300 },{ field: 'age', title: 'Age', minWidth: 300 }]},{title: '分组2',children: [{ title: '列3', field: 'col3', width: 200 },{ title: '列4', field: 'col4', width: 140 },{ title: '列5', field: 'col5', width: 300 },{ title: '列6', field: 'col6', width: 160 },{ title: '列7', field: 'col7', width: 120 },{ title: '列8', field: 'col8', width: 400 },{ title: '列9', field: 'col9', width: 160 },{ title: '列10', field: 'col10', width: 160 },{ title: '列11', field: 'col11', width: 180 },{ title: '列12', field: 'col12', width: 160 },{ title: '列13', field: 'col13', width: 80 },{ title: '列14', field: 'col14', width: 120 },{ title: '列15', field: 'col15', width: 360 },{ title: '列16', field: 'col16', width: 150 },{ title: '列17', field: 'col17', width: 380 },{ title: '列18', field: 'col18', width: 100 },{ title: '列19', field: 'col19', width: 290 },{ title: '列20', field: 'col20', width: 80 },{ title: '列21', field: 'col21', width: 100 },{ title: '列22', field: 'col22', width: 120 },{ title: '列23', field: 'col23', width: 270 },{ title: '列24', field: 'col24', width: 330 },{ title: '列25', field: 'col25', width: 460 },{ title: '列26', field: 'col26', width: 280 },{ title: '列27', field: 'col27', width: 220 },{ title: '列28', field: 'col28', width: 120 },{ title: '列29', field: 'col29', width: 180 },{ title: '列30', field: 'col30', width: 500 },{ title: '列31', field: 'col31', width: 600 },{ title: '列32', field: 'col32', width: 100 },{ title: '列33', field: 'col33', width: 490 },{ title: '列34', field: 'col34', width: 100 },{ title: '列35', field: 'col35', width: 150 },{ title: '列36', field: 'col36', width: 800 },{ title: '列37', field: 'col37', width: 400 },{ title: '列38', field: 'col38', width: 800 },{ title: '列39', field: 'col39', width: 360 },{ title: '列40', field: 'col40', width: 420 },{ title: '列41', field: 'col41', width: 100 },{ title: '列42', field: 'col42', width: 120 },{ title: '列43', field: 'col43', width: 280 },{ title: '列44', field: 'col44', width: 170 },{ title: '列45', field: 'col45', width: 370 },{ title: '列46', field: 'col46', width: 420 },{ title: '列47', field: 'col47', width: 170 },{ title: '列48', field: 'col48', width: 400 },{ title: '列49', field: 'col49', width: 220 },{ title: '列50', field: 'col50', width: 170 },{ title: '列51', field: 'col51', width: 160 },{ title: '列52', field: 'col52', width: 500 },{ title: '列53', field: 'col53', width: 280 },{ title: '列54', field: 'col54', width: 170 },{ title: '列55', field: 'col55', width: 370 },{ title: '列56', field: 'col56', width: 120 },{ title: '列57', field: 'col57', width: 170 },{ title: '列58', field: 'col58', width: 400 },{ title: '列59', field: 'col59', width: 220 },{ title: '列60', field: 'col60', width: 650 },{ title: '列61', field: 'col61', width: 600 },{ title: '列62', field: 'col62', width: 100 },{ title: '列63', field: 'col63', width: 490 },{ title: '列64', field: 'col64', width: 100 },{ title: '列65', field: 'col65', width: 150 },{ title: '列66', field: 'col66', width: 800 },{ title: '列67', field: 'col67', width: 400 },{ title: '列68', field: 'col68', width: 800 },{ title: '列69', field: 'col69', width: 360 },{ title: '列70', field: 'col70', width: 650 },{ title: '列71', field: 'col71', width: 600 },{ title: '列72', field: 'col72', width: 100 },{ title: '列73', field: 'col73', width: 490 },{ title: '列74', field: 'col74', width: 100 },{ title: '列75', field: 'col75', width: 150 },{ title: '列76', field: 'col76', width: 800 },{ title: '列77', field: 'col77', width: 400 },{ title: '列78', field: 'col78', width: 800 },{ title: '列79', field: 'col79', width: 360 },{ title: '列80', field: 'col80', width: 650 },{ title: '列81', field: 'col81', width: 600 },{ title: '列82', field: 'col82', width: 100 },{ title: '列83', field: 'col83', width: 490 },{ title: '列84', field: 'col84', width: 100 },{ title: '列85', field: 'col85', width: 150 },{ title: '列86', field: 'col86', width: 800 },{ title: '列87', field: 'col87', width: 400 },{ title: '列88', field: 'col88', width: 800 },{ title: '列89', field: 'col89', width: 360 },{ title: '列90', field: 'col90', width: 650 },{ title: '列91', field: 'col91', width: 600 },{ title: '列92', field: 'col92', width: 100 },{ title: '列93', field: 'col93', width: 490 }]},{ title: '列94', field: 'col94', width: 100 },{ title: '列95', field: 'col95', width: 150 },{ title: '列96', field: 'col96', width: 800 },{ title: '列97', field: 'col97', width: 100 },{ title: '列98', field: 'col98', width: 150 },{ title: '列99', field: 'col99', width: 200 },{ title: '列100', field: 'col100', width: 100, fixed: 'right' }],data: [],footerData: [{ seq: '合计', name: '666', role: '888', sex: '999', age: '234', address: '453' },{ seq: '均值', name: '222', role: '333', sex: '777', age: '876', address: '134' }]
})
// 模拟行数据
const loadList = (size = 200) => {const dataList = []for (let i = 0; i < size; i++) {dataList.push({id: 10000 + i,name: 'Test' + i,role: i % 3 ? 'Developer' : ' DeveloperDeveloper DeveloperDeveloper DeveloperDeveloper DeveloperDeveloper DeveloperDeveloper',sex: '男',age: 20,address: 'Address abc',col90: '90-' + i,col91: '91-' + i,col92: '92-' + i,col93: '93-' + i,col94: '94-' + i,col95: '95-' + i,col96: '96-' + i,col97: '97-' + i,col98: '98-' + i,col99: '99-' + i,col100: '100-' + i})}gridOptions.data = dataList
}loadList(500)
</script>

https://gitee.com/x-extends/vxe-table

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

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

相关文章

2025年8款AI写论文神器推荐:轻松搞定毕业论文查重率

毕业论文让众多学子压力山大,查重严格更添焦虑。本文总结了2025年8款AI写论文神器,包括PaperNex、巨鲸写作、AI论文及时雨等。这些工具各有特色,如PaperNex能高效生成论文初稿、具备AI智能改稿系统;巨鲸写作可一键…

2025年12月小程序定制开发公司如何选择,从需求到交付全流程选型指南抖音小程序、微信小程序、支付宝小程序、寺庙小程序、律所小程序全涵盖

在移动互联网轻量化应用趋势下,小程序已成为企业数字化转型的重要载体。2025年,小程序生态持续演进,跨端开发、AI集成、合规要求等方面的变化,让定制开发公司的选择变得更为关键。从需求梳理到项目交付,每个环节的…

2025年12月单片机开发服务权威推荐榜:从设计到维护一站式专业解决方案!

2025年12月单片机开发服务权威推荐榜:从设计到维护一站式专业解决方案! 随着科技的快速发展,单片机在各个领域的应用越来越广泛。无论是工业自动化、智能家居还是汽车电子,单片机都扮演着至关重要的角色。为了帮助…

2025年真空盘式过滤机厂家品牌权威推荐榜单:盘式过滤机/全自动盘式过滤机源头厂家精选

在矿山、冶金、化工、环保等涉及固液分离的工业领域,真空盘式过滤机凭借其连续作业、高效脱水和大处理量的核心优势,已成为关键设备之一。随着行业对资源回收率、排放标准和运行成本的要求日益严格,过滤设备的性能直…

ScrumMaster避坑指南

《ScrumMaster避坑指南:从“救火队员”到高效领航者的四个关键转变》 初任ScrumMaster时,常陷入四处救火却成效甚微的困境。本文总结四个常见误区及应对策略:1)纵容任务拖延会破坏Sprint目标,需从根源解决估算偏差…

广东靠谱的公关公司怎么选?3个核心标准帮你避坑

广东作为全国经济第一大省,聚集了科技、金融、文旅、电商等多元行业企业。这些企业在发展中常面临三大痛点:一是本地品牌拓展全国市场时缺乏顶层媒体资源链接,二是突发舆情时需要熟悉本地语境的快速响应团队,三是电…

2025滨海新区月子会所口碑推荐:新手家庭的母婴照护优选指南

随着母婴照护需求不断升级,“天津月子中心哪家好”“滨海新区月子会所怎么选”“塘沽高性价比月子中心有哪些”成为新手家庭高频提问。无论是追求“靠谱服务”“高性价比”,还是需要“拎包入住”“双职工专属方案”,…

博士留学中介排名TOP10!适配需求的好机构推荐

随着博士申请竞争日趋激烈,选对中介成为上岸关键。市面上机构质量参差不齐,结合服务深度、录取成果等维度,整理出 2025 十大留学中介排名,为学子精准指引方向。 第一名、优越留学 98 分 英美港新全学段申请标杆 官…

初识MySQL:库的操作、数据类型、表的操作 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

博士机构排行新榜,含申请亮点的十大实力留学机构

博士申请的核心是学术匹配,选对留学机构能少走大半弯路。不少人困惑如何选博士留学中介,其实关键看两点:一是行业资质是否扎实,二是能否把博士优势转化为录取竞争力。结合2024年申请案例,我整理了10家机构的百分制…

SMTP协议中基础邮件传输所需的往返时间分析

本文深入探讨了在两个邮件服务器之间进行一次基本的SMTP消息传输究竟需要多少次往返时间。通过分析TCP连接建立及HELO、MAIL FROM、RCPT TO、DATA等命令序列,对不同的延迟计算模型进行了对比。问题:两个邮件服务器之…

2026年数控机床主轴轴承厂家推荐 磨床主轴轴承、车床轴承、铣床轴承、动力头轴承源头厂家

随着数控机床对加工精度、主轴转速与稳定性的要求越来越高,主轴轴承已成为决定机床性能的重要核心部件。选择合适的轴承厂家,不仅关系到初期整机性能,也影响设备稳定性与寿命。下面推荐几家当前表现突出的主轴轴承供…

day7敏捷冲刺

【Alpha冲刺Day7】Alpha版本测试 & 冲刺收尾 今日聚焦Alpha版本全流程验证与冲刺收尾,完成全模块回归测试、Bug闭环修复、版本打包及文档汇总,实现校园二手交易平台核心功能的完整交付,为Alpha阶段画上圆满句号…

申请助力全程在线!优选名单里有好博士留学中介

在留学申请的赛道上,选对靠谱的中介机构往往能让申请之路事半功倍,尤其是竞争激烈的博士申请,专业的指导更是成功的关键。以下为大家整理了十大留学中介排名 TOP10,结合各机构的核心业务、服务质量等多方面情况进行…

别再装系统了!Linux 镜像到底是什么?一篇讲到你怀疑人生

在现代工业、嵌入式开发和服务器运维中,Linux 系统无处不在。从数据中心的高性能服务器,到工控现场的 ARM 控制器,再到家庭和企业使用的路由器、IoT 设备,Linux 都在默默运行。而无论设备多小、环境多复杂,如何快…

day6敏捷冲刺

【Alpha冲刺Day6】订单模块(下单/管理)开发 今日聚焦“二手商品交易闭环”核心场景,完成订单创建、订单列表查询及订单状态管理等核心功能的开发,实现从“商品详情”到“下单交易”的全流程衔接,为平台交易功能筑…

第4天

每日Scrum报告 日期: [填写日期] 会议时间: [填写时间] 1. 当日站立式会议记录 会议照片成员同步内容 成员:齐思贤昨天已完成的工作:设计JWT payload结构(包含user_id/role/exp);集成jwt-cpp依赖,实现Token生成…

2025年数控机床钣金外壳优质供应商TOP5排名

这份排名并非主观评判,而是基于中国机床工具工业协会《2025 钣金加工企业竞争力评估报告》、网易新闻行业调研数据及第三方检测机构实测结果,从五大维度量化评分(满分 100 分,入选企业均超 85 分)。一、问题:机床…

2025年徐州人力资源服务外包公司权威推荐榜单:人力资源外包公司‌/外包人力资源公司‌/人力资源外包服务‌源头公司精选

在数字化转型与产业结构升级的背景下,企业对人力资源管理的需求已从传统的事务性操作,转向寻求能够提供降本增效、合规管控与战略支持的一体化解决方案。专业的人力资源服务外包公司,正成为企业优化用工结构、聚焦核…

2025年BI本地私有化部署厂商选择指南:AI驱动下的企业数据管理新范式(企业智能BI私有化部署厂商/BI私有化部署方案商深度盘点)

在2025年数字化转型深入推进的背景下,企业对数据资产的重视程度达到前所未有的高度,而BI(商业智能)作为数据价值挖掘的核心工具,其部署模式的选择直接关系到企业数据安全与业务效率。其中,BI本地私有化部署凭借对…