关于 custom-features
custom-features 是一项用于在 @tanstack/table-core 中实现自定义功能的技能。它指导开发者处理插件类型、生命周期钩子、运行时 API 和验证,确保声明的行为注册后可用于构造的表格。
主要功能
- 01按行为选择插件或元数据
- 02声明与运行时钩子匹配的 FeatureMaps
- 03按生命周期安装表格及对象 API
- 04管理每个表格的可变实例数据
- 05通过 tableFeatures 注册稳定功能
- 06验证 API、状态与重置行为
适用场景
- 01为表格添加自定义状态或方法
- 02扩展行、列、单元格或表头行为
- 03排查缺少运行时实现的类型声明
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tanstack/ table --skill custom-features安装后在 Claude Code 中输入/custom-features确认已加载。
附带文件references/plugin-example.md
详细介绍
编写自定义功能
请先阅读 core 和 feature architecture。如果某项行为必须扩展 Table 对象,且需要可复用的状态或行为,请使用插件。对于渲染器回调和应用配置,内置选项以及类型化的 tableMeta/columnMeta 通常已经足够。
实现工作流
- 确定该行为所拥有的状态、选项和对象方法。如果它只传递回调或渲染器数据,请阅读 scoped meta typing,改用 meta。
- 在声明插件类型或编写生命周期钩子之前,请阅读完整插件示例。其中列出了全部 10 个公开 FeatureMaps、API 赋值辅助函数、生命周期顺序以及高级行模型映射。
- 在
Plugins中声明功能键。仅合并具有匹配运行时实现的 FeatureMaps;仅有声明并不会安装任何行为。 - 在
getInitialState中,将用户状态保留在默认值之后;在默认选项中连接状态更新器。分别在对应的生命周期钩子中使用assignTableAPIs安装表方法,使用assignPrototypeAPIs安装对象方法。 - 保持功能对象和
tableFeatures({ customFeature })的结果稳定。通过tableFeatures注册插件,以确保类型推断和组合包含该插件。 - 在构造完成的表上验证所声明的状态、选项、方法和重置行为。每个声明的 API 都必须在运行时存在;重置行为必须遵循状态所有者的约定。
生命周期边界
对于由单个表拥有的可变数据,请使用 initTableInstanceData;对于清除其临时内容,请使用 resetTableInstanceData。所有功能初始化完成后,才会执行任何 constructTableAPIs 钩子。请将方法安装与数据分配分开。
原型方法由表的各行、列、单元格或表头共享。通过方法当前所属的实例读取每个对象的值,并使用受支持的实例数据钩子处理可变字段。添加记忆化方法或高级行模型/缓存接线之前,请先阅读示例中的安装规则。
常见问题
- 类型声明没有对应的运行时钩子时,会声明出实际不存在的 API。
- 随意修改已构造的实例会绕过功能注册和推断组合。
- 如果把密度示例视为唯一的扩展模式,就会遗漏列定义和其他公开 FeatureMaps。请根据行为选择所需映射;高级行模型声明还需要运行时管线/缓存接线。
已安装 API 的查找
检查 node_modules/@tanstack/table-core/dist/types/TableFeatures.d.ts、dist/types/ 中导出的 *_FeatureMap 接口,以及 dist/utils.d.ts 中的 assignTableAPIs/assignPrototypeAPIs。参考 dist/features/ 下的声明,了解可比较的内置生命周期签名。
评论
支持 Markdown