关于 table-features
用于配置 TanStack Table v9 功能的编码技能,指导开发者注册功能、处理依赖,并按需求查阅相关参考文档。
主要功能
- 01注册可选表格功能
- 02检查功能前置依赖
- 03按任务选择参考文档
- 04查找已安装的功能 API
适用场景
- 01添加排序或筛选
- 02选择行处理阶段
- 03排查 API 不可用的原因
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tanstack/ table --skill table-features安装后在 Claude Code 中输入/table-features确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/aggregation.mdcell-selection.mdcell-spanning.mdclient-vs-server.mdcolumn-faceting.mdcolumn-filtering.mdcolumn-ordering.mdcolumn-pinning.mdcolumn-resizing.mdcolumn-sizing.mdcolumn-visibility.mdexpanding.mdglobal-filtering.mdgrouping.mdpagination.mdrow-pinning.mdrow-selection.mdsorting.md详细介绍
功能架构
请先阅读 core 以了解无头模型和稳定输入。
注册表格所用的行为
import {
createSortedRowModel,
rowSortingFeature,
sortFn_alphanumeric,
tableFeatures,
} from '@tanstack/table-core'
export const features = tableFeatures({
rowSortingFeature,
sortedRowModel: createSortedRowModel(),
sortFns: { alphanumeric: sortFn_alphanumeric },
})
将稳定的 features 对象传递给已安装适配器的构造函数。具体的注册表决定了可选 API、选项、状态切片及其类型。核心行模型是自动的;自定义核心模型则使用 coreRowModel。
注册规则
- 在同一个
tableFeatures调用中,先注册每个前置功能,再注册依赖它的插槽。仅有处理工厂本身无法安装该功能的 API 或状态。 - 行模型工厂使用
create*RowModel()功能插槽。它们的名称和前置条件见功能参考。这些工厂不接受函数注册表参数。 filterFns、sortFns和aggregationFns是功能插槽,而非表格选项。它们分别需要columnFilteringFeature、rowSortingFeature和rowAggregationFeature。- 单独导入内置函数(例如
sortFn_alphanumeric)并注册其约定键名。这些键名会成为有类型的字符串名称;'auto'只能解析已注册的函数。当某列不需要命名的注册表条目时,可直接传入函数。完整的注册表导出会打包所有内置函数。 columnResizingFeature需要columnSizingFeature;globalFilteringFeature需要columnFilteringFeature。其他依赖请检查已安装的FeatureSlotPrereqs。- 常规构造请使用显式功能。
stockFeatures是一个有意提供的全功能便捷方式或临时迁移辅助工具,会带来相应的打包体积成本。
API 缺失可能是因为未注册。在进行类型转换、重新创建 API,或假设 v9 已移除该 API 之前,请先检查具体的功能对象。
根据所需变更选择参考文档
仅阅读所需行为及其依赖项(包括正在添加的功能)所需的参考文档。表格中已注册但与当前任务无关的功能,不代表需要阅读其参考文档。
| 任务涉及 | 阅读 |
|---|---|
| 手动模式、服务端数据、混合行处理阶段或数据集范围 | 客户端/服务端所有权 |
| 总计、多个聚合、分组聚合值或自定义聚合定义 | 聚合 |
| 分面选项计数、数值范围或不完整的服务端分面 | 列分面 |
| 按列筛选、筛选函数、元数据或嵌套行筛选 | 列筛选 |
| 分组行、占位符,或与展开/分页配合的分组 | 分组 |
| 拖拽排序,或叶子列顺序与状态不一致 | 列排序 |
| 粘性列区域、逻辑起止位置或固定间隙 | 列固定 |
| 拖拽调整大小手柄、手势事件或调整大小性能 | 列宽调整 |
| 数值宽度、最小/最大限制,或模型与 CSS 尺寸不一致 | 列尺寸 |
| 隐藏列、感知可见性的渲染或隐藏控件 | 列可见性 |
| 跨列搜索或全局筛选资格 | 全局筛选 |
| 层级子行、详情面板或展开/分页交互 | 展开 |
| 分页切片、计数、导航或页索引重置 | 分页 |
| 顶部/底部固定行,或其在当前页之外的可见性 | 行固定 |
| 矩形单元格选择、包含/排除范围或拖拽轮廓 | 单元格选择 |
| 合并的主体单元格、被覆盖的单元格,或随行顺序变化的跨度 | 单元格跨列/跨行 |
| 行复选框、全选、Shift 范围选择或跨页 ID | 行选择 |
| 排序、比较器、未定义值或排序交互循环 | 排序 |
如需了解受控状态或重置行为,请阅读共享状态,并加载已安装适配器的状态技能以进行响应式接线。
已安装 API 查找
查看 node_modules/@tanstack/table-core/dist/types/TableFeatures.d.ts 以了解插槽和 FeatureSlotPrereqs。参照 dist/features/<feature>/ 获取精确的状态、选项和实例声明。每篇参考文档都会注明其对应的功能目录。
评论
支持 Markdown