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

news/2025/12/3 16:43:10/文章来源: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.mzph.cn/news/985726.shtml

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

相关文章

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

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

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

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

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

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

深入理解 iOS 文件管理体系,从沙盒结构到多工具协同的工程化文件管理实践

全面解析 iOS 文件管理体系,结合 KeyMob、Xcode、Safari Inspector、Charles、SQLite 工具链构建从沙盒结构、缓存清理到系统日志协同的完整工程化文件管理方案。在移动应用持续扩展的当下,iOS 文件管理 已不仅是获取…

深入解析:Linux服务器崩溃急救攻略

深入解析:Linux服务器崩溃急救攻略pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco…

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

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

03-核心几何类型详解

第三章:核心几何类型详解 3.1 几何类型概述 geometry-api-net 提供了一套完整的几何类型系统,遵循 OGC(开放地理空间联盟)的简单要素规范。所有几何类型都继承自抽象基类 Geometry,形成了清晰的类型层次结构。 3.…

04-空间关系操作符

第四章:空间关系操作符 4.1 空间关系概述 空间关系是 GIS 分析的基础,用于描述两个几何对象在空间上的相对位置关系。geometry-api-net 提供了 9 种符合 OGC 标准的空间关系测试操作符。 4.1.1 空间关系类型关系 操作…

ScrumMaster避坑指南

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

01-项目概述与框架理念

第一章:geometry-api-net 项目概述与框架理念 1.1 项目简介 geometry-api-net 是一个面向 .NET 平台的高性能几何计算库,是 Esri Geometry API for Java 的 C# 移植版本。该库提供了完整的几何对象模型、空间关系测试…

02-快速开始指南

第二章:快速开始指南 2.1 环境准备 2.1.1 前提条件 在开始使用 geometry-api-net 之前,请确保您的开发环境满足以下条件:.NET SDK:8.0 或更高版本(推荐使用最新 LTS 版本) IDE:Visual Studio 2022、VS Code 或 …

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

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

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

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

iOS 异常捕获原理详解

iOS 异常捕获涉及 Objective-C/Swift 语言层面、运行时机制及系统底层信号处理,主要分为OC/Swift 异常捕获、崩溃信号捕获和自定义异常处理三类,以下从原理、机制到实现细节详细解析: 一、Objective-C 异常捕获原理…

2025上海翻译的公司推荐:提供高质量语言解决方案

在2025年全球交流愈发紧密的时代背景下,上海作为中国的经济中心与国际大都市,正以其开放包容的城市魅力和强劲的经济发展势头,吸引着全世界的目光。随着“一带一路”倡议的深入实施以及国际合作的不断拓展,上海的翻…

2025年天津钢管扣件租赁公司最新推荐榜,天津脚手架出租、天津脚手架搭设、天津移动脚手架、 天津钢管扣件出租、聚焦服务品质与业务竞争力深度剖析

随着天津城市建设工程的持续推进,各类建筑项目对脚手架、钢管扣件等设备的租赁需求日益增长,施工方在选择合作机构时面临多重考量 —— 如何辨别企业合规资质、如何匹配项目所需的设备类型与服务模式、如何规避设备使…

Java 查找字符串最后一次出现的位置

Java 查找字符串最后一次出现的位置在 Java 开发中,查找字符串中字符或子串最后一次出现的位置是高频需求(如解析文件路径、提取后缀名、处理 URL 等场景)。核心依赖 String 类的 lastIndexOf() 方法,该方法提供多…

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

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

2025年度中国翻译服务公司推荐:综合实力强品牌权威公布

在全球化浪潮持续深化的2025年,中国作为世界经济的重要引擎,国际交流与合作日益频繁,对高质量翻译服务的需求呈现出爆发式增长。然而,当前国内翻译市场机构林立,水平良莠不齐,如何筛选出真正优质、专业的翻译服务…

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

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