React 表格底层原语 @rc-component/table 实战指南

发布时间:2026/8/24 21:14:28

React 表格底层原语 @rc-component/table 实战指南
React 表格底层原语 rc-component/table 实战指南【免费下载链接】table Low-level table primitives for React, maintained in the Ant Design ecosystem.项目地址: https://gitcode.com/gh_mirrors/tab/table写数据管理页面时Ant Design 的 Table 一旦对不上你的设计你往往会选择放弃定制。rc-component/table 是 Ant Design Table 底层用的表格原语组件固定列、可展开行、合计行、虚拟滚动都是它的一等公民样式层完全留给你自己。它不绑定任何 UI 风格你要做的是把它当成表格引擎来用。它能把哪些事从你手里接过去固定列和固定表头配fixed加scroll就行滚动同步、阴影边线都由内部处理不用写 CSS 定位可展开行一个expandable对象管住展开图标、展开内容、哪行可展开三件事合计行 Summary表尾的合计、小计行不用你自己拼tfoot虚拟滚动VirtualTable只渲染视口内的行几千行数据滚动不卡全程类型推断TableUser之后列的dataIndex写错字段名编译器直接报错源码在 src/ 下按 Header、Body、Footer、VirtualTable 分模块想改行为时知道该去翻哪块。高频场景从最小表格到虚拟滚动基础表格怎么起步定义一个接口列和数据都挂在上面这是全部配置import Table from rc-component/table; import type { ColumnsType } from rc-component/table; interface User { key: string; name: string; age: number; } const columns: ColumnsTypeUser [ { title: 姓名, dataIndex: name, key: name }, { title: 年龄, dataIndex: age, key: age, width: 80 }, ]; const data: User[] [{ key: 1, name: Jack, age: 28 }]; export default () TableUser columns{columns} data{data} /;rowKey默认读数据的key字段所以示例里每条记录都带了key。固定列加横向滚动遇到表格比容器宽、希望首列或操作列始终可见的情况给这些列设fixed再给表格设scroll.x。const columns: ColumnsTypeUser [ { title: 姓名, dataIndex: name, key: name, width: 120, fixed: left }, { title: 地址, dataIndex: address, key: address }, { title: 操作, key: action, width: 100, fixed: right }, ]; // 设了 scroll.x 才有横向滚动条固定列才能钉住 TableUser columns{columns} data{data} scroll{{ x: 1200 }} /;注意固定列必须显式写width这一点下面坑里再展开。可展开行怎么配每行点开看详情这种需求全部收敛在expandable里TableUser columns{columns} data{data} expandable{{ // 展开后渲染的整行内容 expandedRowRender: record div详情{record.detail}/div, // 没有详情的行不出现展开图标 rowExpandable: record !!record.detail, }} /旧的expandRowRender、defaultExpandedRowKeys这类散装 props 已经废弃统一收进expandable对象src/Table.tsx 顶部注释里列了完整的迁移清单。合计行和表尾报表类页面常用的共 N 条、合计金额用Summary组件直接挂在 Table 里import { Summary } from rc-component/table; TableUser columns{columns} data{data} Summary Summary.Row Summary.Cell colSpan{2}共 {data.length} 条/Summary.Cell Summary.Cell平均 {avgAge} 岁/Summary.Cell /Summary.Row /Summary /Table大数据量切虚拟滚动数据超过几千行、滚动开始掉帧时把Table换成VirtualTable加一个heightimport { VirtualTable } from rc-component/table; // 只渲染视口内的行3000 行和 30 行体感一致 VirtualTableUser columns{columns} data{data} height{400} scroll{{ x: 1200 }} fixed /fixed表示开启固定列支持。虚拟模式下的细节实现可以看 src/VirtualTable/。一个贯穿示例拼出用户管理表格假设你要做的是一个用户管理列表首列姓名固定、操作列固定、每行可展开看详情、底部有合计行。做法就是把上面四段配置叠在同一个 Table 上列定义里给姓名、操作列加width和fixed表格加scroll{{ x: 1200 }}让横向滚动生效加expandable配expandedRowRender用Summary子节点加合计行一个组件四个配置项不用写任何定位或滚动相关的 CSS。项目里 docs/examples/ 有 40 多个可运行的示例文件fixedColumns.tsx、expandedRowRender.tsx、stickyHeaderAndSummary.tsx分别对应上面几段改参数就能看到效果。踩过的坑和解法固定列没设width列宽错乱固定列不参与自动布局不写width时会塌缩或和其他列错位。触发条件用了fixed但列没设宽度。解法所有固定列显式给width。rowKey缺失导致展开状态错行rowKey默认取记录的key字段如果你的数据没有这个字段展开、hover 状态会挂错行。解法显式传rowKeyid或rowKey{r r.id}。嵌套字段写成字符串路径取不到值dataIndex: address.city是无效的它不做路径解析。解法用数组形式dataIndex: [address, city]支持任意深度。只设scroll.x表头会跟着内容滚走固定表头需要scroll.y参与布局只设x时纵向滚动表头和表体会脱节。解法需要吸顶表头就同时设y示例见 docs/examples/stickyHeader.tsx。下一步本地跑起来继续看想动源码或跑完整示例把仓库拉下来即可git clone https://gitcode.com/gh_mirrors/tab/table装好依赖后跑npm startdumi 站点会列出全部 demo。两个值得直接翻的地方docs/examples/固定列、虚拟滚动、RTL、拖拽排序等场景的完整实现src/hooks/useColumns、useExpand、useSticky这些内部钩子理解组件行为机制的最短路径需要更细的 API 说明从 src/interface.ts 的ColumnType定义入手每个字段的语义都有注释。【免费下载链接】table Low-level table primitives for React, maintained in the Ant Design ecosystem.项目地址: https://gitcode.com/gh_mirrors/tab/table创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

老 Mac 接投影仪无画面?OpenCore Legacy Patcher 多屏输出实操

老 Mac 接投影仪无画面?OpenCore Legacy Patcher 多屏输出实操

2026/8/24 21:14:28

老 Mac 接投影仪无画面?OpenCore Legacy Patcher 多屏输出实操 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 把老 Mac 接到会议室投影仪&#x…

3 步用 Bypass Paywalls Clean Filters 免费读完被付费墙挡住的文章

3 步用 Bypass Paywalls Clean Filters 免费读完被付费墙挡住的文章

2026/8/24 21:14:28

3 步用 Bypass Paywalls Clean Filters 免费读完被付费墙挡住的文章 【免费下载链接】bypass-paywalls-clean-filters 项目地址: https://gitcode.com/gh_mirrors/by/bypass-paywalls-clean-filters 深度报道读到一半,页面下半截突然换成"订阅才能看&q…

GetQzonehistory 快速入门教程:把QQ空间历史说说、配图和评论一次性备份到本地

GetQzonehistory 快速入门教程:把QQ空间历史说说、配图和评论一次性备份到本地

2026/8/24 21:14:28

GetQzonehistory 快速入门教程:把QQ空间历史说说、配图和评论一次性备份到本地 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory QQ空间没有官方的数据导出入口,想…

Codex安全盲区:代码漏洞生成实测

Codex安全盲区:代码漏洞生成实测

2026/8/24 22:34:31

一、 引言:AI代码生成的安全隐忧随着GitHub Copilot、Amazon CodeWhisperer等基于大型语言模型的AI编程助手普及,开发效率得到显著提升。然而,这些模型在生成看似功能正确的代码时,是否也潜在地引入了安全漏洞?本章节将…

先让 AI 出方案,再让它写代码:新手也能使用的设计习惯

先让 AI 出方案,再让它写代码:新手也能使用的设计习惯

2026/8/24 22:34:31

文章目录一、什么是“先出方案,再写代码”二、为什么直接写代码容易返工1. 代码会掩盖需求问题2. 一次改动太多,问题难以定位3. 设计不合理时,后续功能会越来越难加三、一个简单方案应该包含哪些内容1. 需求理解2. 功能范围3. 用户操作流程4.…

Windows Defender 怎么恢复:安全中心显示“由组织管理“的完整修复指南

Windows Defender 怎么恢复:安全中心显示“由组织管理“的完整修复指南

2026/8/24 22:34:31

Windows Defender 怎么恢复:安全中心显示"由组织管理"的完整修复指南 【免费下载链接】no-defender A slightly more fun way to disable windows defender firewall. (through the WSC api) 项目地址: https://gitcode.com/GitHub_Trending/no/no-def…

Fiddler弱网测试实战:精准模拟移动网络环境,提升应用健壮性

Fiddler弱网测试实战:精准模拟移动网络环境,提升应用健壮性

2026/8/24 22:34:31

1. 项目概述:为什么我们需要模拟弱网环境?在移动应用和Web服务的质量保障体系中,网络环境的多样性是一个无法回避的挑战。用户可能在地铁、电梯、偏远山区,或者仅仅是Wi-Fi信号不佳的角落使用你的产品。如果开发测试只在高速度、低…

机房可视化三套方案实操指南:免费快速画出第一张机柜图并避坑

机房可视化三套方案实操指南:免费快速画出第一张机柜图并避坑

2026/8/24 22:34:31

机房可视化三套方案实操指南:免费快速画出第一张机柜图并避坑 【免费下载链接】awesome-sysadmin A curated list of amazingly awesome open-source sysadmin resources. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-sysadmin 凌晨2点&#…

曾被奉为 “安全基线” 的 Fastjson 1.2.83,RCE 漏洞手把手复现,一把打穿

曾被奉为 “安全基线” 的 Fastjson 1.2.83,RCE 漏洞手把手复现,一把打穿

2026/8/24 22:24:31

先看结果: 对,你没看错。Fastjson 1.2.83,autoType默认关闭,classpath上没有任何gadget类——在这种大家普遍认为"已经安全了"的配置下,直接root权限反弹Shell。攻击机上就跑了一个Python脚本,前…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/24 19:53:32

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/24 19:56:07

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/24 21:16:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

2026/8/24 0:03:28

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan OpenModScan 是一款开源免…

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

2026/8/24 0:03:28

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化 【免费下载链接】WechatHook Enjoy hooking wechat by Xposed....Accessibility...and so on... 项目地址: https://gitcode.com/gh_mirrors/we/WechatHook WechatHook 是一个基于 Xpos…

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

2026/8/24 0:03:28

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南 【免费下载链接】ThinkpadX390-Opencore-EFI macOS Catalina & Big Sur & Monterey on ThinkPad X390 (Hackintosh) 项目地址: https://gitcode.com/gh_mirrors/th/ThinkpadX390-Opencore-EFI …

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…