mcpField
C
core

core

github.com/tanstack开发28.6k112 次安装3 周前更新
代码仓库

关于 core

core 是介绍 TanStack Table 无头表格模型、状态和功能 API 的技能,面向构建或扩展表格的开发者。内容涵盖稳定输入与 TypeScript 类型推断。

主要功能

  1. 01配置无头行模型
  2. 02管理状态和已注册功能
  3. 03保留列访问器类型
  4. 04查找已安装的 API 与声明

适用场景

  1. 01添加或修复表格功能
  2. 02诊断缺失的 API 或状态
  3. 03迁移现有的 v8 表格

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tanstack/table --skill core

安装后在 Claude Code 中输入/core确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
api-not-found.md
rows.md
typescript.md

详细介绍

TanStack Table 核心

TanStack Table 负责协调状态和行处理。渲染器负责标记、样式、语义和交互可访问性。在 UI 代码中使用已安装的框架适配器;在与框架无关的集成中使用 constructTable。

最小设置

import {
  constructTable,
  createColumnHelper,
  tableFeatures,
} from '@tanstack/table-core'
import { storeReactivityBindings } from '@tanstack/table-core/store-reactivity-bindings'

type Person = { id: string; name: string }
const features = tableFeatures({
  coreReactivityFeature: storeReactivityBindings(),
})
const helper = createColumnHelper<typeof features, Person>()
const columns = helper.columns([helper.accessor('name', { header: 'Name' })])
const data: Person[] = [{ id: '1', name: 'Ada' }]
const table = constructTable({
  features,
  columns,
  data,
  getRowId: (row) => row.id,
})

for (const row of table.getRowModel().rows) {
  console.log(row.getAllCells().map((cell) => cell.getValue()))
}

核心约束

  • 核心行模型会自动提供。只有注册了相应功能后,才会提供可选 API 和状态。
  • 在有意义的变更之间保持 features、data 和 columns 稳定。使用适配器的 memo/computed 机制派生变化中的数组;内联的 .map()、.filter()、列工厂或新建的 [] 回退值会使模型处理失效,并可能导致渲染循环。
  • 使用 createColumnHelper 和 helper.columns() 保留访问器值类型。需要显式边界时,从具体注册表派生功能类型。
  • 在行、单元格、列和表头实例上调用其方法。使用 row.getValue('name') 或调用它的回调;解构 const { getValue } = row 会丢失它的 this 接收者。
  • 渲染最终的 table.getRowModel().rows。表格对象本身不是 DOM 组件。

阅读与当前任务相关的内容

任务阅读内容
添加或修复可选功能、处理插槽或前置条件功能架构,然后阅读相关功能参考
选择状态归属、初始化或重置状态共享状态
修复 ColumnDef 推断、可复用选项或作用域 metaTypeScript 推断
诊断缺失的导出、选项、状态切片或实例方法API 发现
实现行号、标识或显示索引行为行
实现超出内置功能的行为或类型化 meta自定义功能
迁移现有的 v8 表格迁移审查

对于框架构建和渲染,请使用 intent load <package>#getting-started 加载已安装软件包的 getting-started 技能,并将 <package> 替换为实际的适配器软件包,例如 @tanstack/react-table。对于响应式读取或受控连接,请直接加载该软件包的 table-state 技能。

已安装 API 发现

从 node_modules/@tanstack/table-core/dist/index.d.ts 开始,并沿着导出的声明查找。适配器声明布局和缺失 API 的诊断方法见 API 发现;如果预期的导出或声明路径不存在,请阅读该文档。

评论

支持 Markdown