大家好,很高兴又见面了,我是"高级前端?进阶?",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。
什么是 FixedDataTable
Fixed-Data-Table-2 是 facebook/fixed-data-table 的延续, 后者存储库不再维护,并且有许多拉取请求(pull requests )等待处理。
本质上,FixDataTable 是一个 React 组件,用于以灵活、强大的方式构建和渲染数据,支持标准表格功能,例如:标题、列、行、标题分组以及固定位置和滚动列。
FixDataTable旨在处理数千行数据而不牺牲性能,平滑滚动是固定数据表的首要目标,同时代码架构具有高度的灵活性和可扩展性。FixedDataTable 的典型特点包括:
- 固定页眉和页脚
- 固定列和可滚动列
- 处理大量数据
- 可变行高(具有自适应滚动位置)
- 调整列大小
- 高性能滚动
- 可定制的样式
- 跳转到行或列
- 受控滚动 API 允许触摸支持
但是 FixDataTable 也有自己的一些局限性,比如:
- FixDataTable 不提供布局重排机制或计算内容布局信息,例如:单元格内容的宽度和高度, 开发人员必须向表提供布局信息。
- FixDataTable 不处理数据排序,但是允许开发人员提供可排序、过滤或尾加载感知的数据获取器。
- FixDataTable 不获取数据
此版本的 FixDataTable 由 Schr?dinger, Inc. 维护。它是 Facebook 的 FixDataTable 存储库的 fork 版本,可在 BSD 许可证下使用,同时对固定数据表的贡献和修改也受 BSD 许可证的约束。
如何使用 FixDataTable
首先使用 npm 安装 fixed-data-table-2:
npm install fixed-data-table-2使用链接标签添加默认样式表 dist/fixed-data-table.css 或使用 CSS 模块导入它。
实现表格涉及三种组件类型,即
const rows =[0,1,2];
定义表中一列的数据显示方式,包括该列的所有单元格行为。 不是直接操作每个单元格,而是将单元格组件作为 prop 传递给列,并且该列将为数据数组中的每个索引渲染一个单元格。
Col 1} cell={| Column 1 | } width={2000} />
列中的单元格组件将接收数据的当前数组索引作为 prop (this.props.rowIndex),使用它来访问每个单元格的正确值。
const rows = [0, 1, 2];
Column 1}
cell={({ rowIndex, ...props }) => | {rows[rowIndex]} | }
width={2000}
/>;
如果 data 是对象数组,请为每列定义一个 columnKey 属性,它也将传递到该列中的所有单元格。
const rows = [
{ someKey: "someValue" },
{ someKey: "anotherValue" },
{ someKey: "yetAnother" },
];
Col 1}
columnKey="someKey"
cell={({ rowIndex, columnKey, ...props }) => (
| {rows[rowIndex][columnKey]} |
)}
width={2000}
/>;
您可能会发现定义自定义单元格组件很有用,这些组件也可以传递到列:
const MyCustomCell = ({ isSpecial }) => (
| {isSpecial ? "I'm Special" : "I'm Not Special"} |
);
Col 3}
cell={ }
width={2000}
/>;
下面是完整的代码示例:
import React from "react";
import ReactDOM from "react-dom";
import { Table, Column, Cell } from "fixed-data-table-2";
import "fixed-data-table-2/dist/fixed-data-table.css";
// 表data作为数组列表
const rows = [
"first row",
"second row",
"third row",
// .... and more
];
// 使用特殊prop的自定义单元实现
const MyCustomCell = ({ mySpecialProp }) => (
|
{mySpecialProp === "column2" ? "I'm column 2" : "I'm not column 2"}
|
);
// 渲染表格
ReactDOM.render(
Col 1}
cell={| Column 1 static content | }
width={2000}
/>
Col 2}
cell={ }
width={1000}
/>
Col 3}
cell={({ rowIndex, ...props }) => (
| Data for column 3: {rows[rowIndex]} |
)}
width={2000}
/>
,
document.getElementById("example")
);
参考资料
https://github.com/schrodinger/fixed-data-table-2
https://schrodinger.github.io/fixed-data-table-2/
https://schrodinger.github.io/fixed-data-table-2/example-reorder.html
https://www.material-react-table.com/blog/the-best-react-data-grid-table-libraries-with-material-design-in-2023
相关推荐
- 免费刷机工具(免费刷机工具哪个好用)
-
刷机机灵你的安卓手机智能管家:刷机精灵软件是一款适用于Andorid设备的一键刷机软件。它能够自动安装设备驱动、自动获取ROOT权限、自动刷入ClockworkmodRecovery以完成Andr...
- 硬盘重新分区怎么分(硬盘重新分区后怎么装系统)
-
对已分区的硬盘重新分区的方法如下:1. 备份重要数据:重新分区会格式化硬盘,导致数据丢失。因此,在进行重新分区之前,需要备份重要数据。2. 进入磁盘管理工具:在Windows操...
- 一键ghost快捷键(1键ghost)
-
一、开机连续按F8,在系统启动菜单中,选择一键还原选项进行一键还原。二、制作启动盘重装操作系统。安装GHOST版本操作系统方法:1、将制作好的PE启动U盘插入电脑USB接口(台式用户建议将u盘插在主机...
- 换无线路由器需要怎么设置(换个无线路由器怎么连接)
-
1、线路连接,入户网线接到无线路由器的wan口;2、路由器连接,a、如果有网线,可以直接用网线接lan口和电脑网口,然后参照第三步;b、没有网线,电脑搜索路由器,然后点击连接上。然后参照第三步设置;3...
- 数据标注接单平台(数据标注接单平台哪个挣得多一点)
-
数据标注员在家可以通过以下方式接单:1.在线平台:有许多数据标注平台允许数据标注员在家完成标注任务,例如标注客、标注助手、数据堂等。这些平台提供了在线标注工具和API接口,让数据标注员可以在家里使用...
- 电脑垃圾怎么清理系统垃圾(电脑垃圾怎么清理干净)
-
电脑清理c盘空间只留系统的操作方法如下。1、打开电脑,找到我的电脑,双击我的电脑,找到盘符C的系统盘。2、找到“属性”菜单。3、点击“属性”后,系统会出现一个新的界面,在新的界面,我们找到“磁盘清理”...
- 显卡推荐性价比2025(显卡2020性价比)
-
2021年买1000块钱的这种显卡性价比最好的还是小米的显卡比较好,因为小米的电子产品呢是比较好的一款它的质量是比较好的,也是比较靠谱的,尤其是1000块钱以内买的这种显卡呢他的内存是比较大的,所以价...
- thinkpad原厂系统重装方法(thinkpad如何重新装系统)
-
若需重装原装系统,需备份系统数据,制作启动盘或将原装系统镜像刻录至光盘或USB。进入BIOS设置,启动优先选项设定为启动盘,重启电脑。按提示选择新系统安装位置。安装完成后更新系统和驱动程序。最后恢复数...
- 安装系统教程win10(安装系统教程win7)
-
正确安装win10系统的步骤如下:1.确认电脑是否满足win10系统的最低配置要求,如CPU、内存、硬盘空间等。2.下载win10系统镜像文件,可以通过微软官网或第三方下载网站获取。3.制作U盘...
- pps影音手机版下载官网(pps影音百科)
-
区别:1,爱奇艺主打网页播放,PPS主打客户端播放器;2,爱奇艺视频正版高清,PPS不全是高清,有部分盗版;3,爱奇艺在线播放比较好,PPS的P2P加载技术打开视频较快。1、爱奇艺PPS影音其实是爱...
- 百度官方下载安装免费(百度官网免费下载)
-
你好!有两种方法可以免费下载!第一:加入百度文库VIP看百度文库的说明,只要加入百度文库的VIP即可免费下载,不过不推荐这种还是需要花钱的方式第二:下载冰点下载器那这种方法该如何免费下载呢?下面我详细...
-
- windows10更新文件在哪里(win10系统更新文件在哪个文件夹)
-
win10自动更新下载的文件位于C:\Windows\SoftwareDistribution\Download文件夹中。当然我们要找到哪个文件夹确切到哪个补丁并不是那么容易的,因为命名的文件夹都是长长的一段代号,一般我们要删除更新文件的...
-
2026-01-02 03:55 liuian
- 扫描仪怎么安装(信鸽扫描仪怎么安装)
-
扫描仪的安装步骤可能会略有不同,具体取决于您所使用的扫描仪品牌和型号。一般而言,您可以按照以下基本步骤来安装扫描仪:确认您的计算机系统符合扫描仪的最低系统要求。在计算机上插入扫描仪的安装光盘,或从制造...
- u盘怎么启动重装系统(u盘启动重装系统哪个好)
-
1.下载好系统之家U盘以后在电脑上插入U盘并打开软件,软件会自,动配置用户的电脑信息,点击制作U盘启动盘。2.接着就进入了选择系统的界面,在这里选择需要安装的系统版本,然后点击开始制作。3.弹出提示窗...
- photoshopcs6哪一年的(pscs6版本好用吗)
-
pscs6的发行时间是2012年4月24日,该软件是是AdobePhotoshop的第13代,具有多种功能,包括内容识别修补、Mercury图形引擎/3D性能提升/3D控制功能/改良的设计工具/全新的...
- 一周热门
-
- 最近发表
-
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
