mcpField
C
custom-features

custom-features

github.com/tanstack开发28.5k42 次安装1 周前更新
代码仓库

关于 custom-features

custom-features 是一项用于在 @tanstack/table-core 中实现自定义功能的技能。它指导开发者处理插件类型、生命周期钩子、运行时 API 和验证,确保声明的行为注册后可用于构造的表格。

主要功能

  1. 01按行为选择插件或元数据
  2. 02声明与运行时钩子匹配的 FeatureMaps
  3. 03按生命周期安装表格及对象 API
  4. 04管理每个表格的可变实例数据
  5. 05通过 tableFeatures 注册稳定功能
  6. 06验证 API、状态与重置行为

适用场景

  1. 01为表格添加自定义状态或方法
  2. 02扩展行、列、单元格或表头行为
  3. 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 通常已经足够。

实现工作流

  1. 确定该行为所拥有的状态、选项和对象方法。如果它只传递回调或渲染器数据,请阅读 scoped meta typing,改用 meta。
  2. 在声明插件类型或编写生命周期钩子之前,请阅读完整插件示例。其中列出了全部 10 个公开 FeatureMaps、API 赋值辅助函数、生命周期顺序以及高级行模型映射。
  3. 在 Plugins 中声明功能键。仅合并具有匹配运行时实现的 FeatureMaps;仅有声明并不会安装任何行为。
  4. 在 getInitialState 中,将用户状态保留在默认值之后;在默认选项中连接状态更新器。分别在对应的生命周期钩子中使用 assignTableAPIs 安装表方法,使用 assignPrototypeAPIs 安装对象方法。
  5. 保持功能对象和 tableFeatures({ customFeature }) 的结果稳定。通过 tableFeatures 注册插件,以确保类型推断和组合包含该插件。
  6. 在构造完成的表上验证所声明的状态、选项、方法和重置行为。每个声明的 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