用途:在 Vue 应用中封装 @tanstack/vue-table 的 createTableHook,建立可复用的表格约定(共享 features 与默认值),适合多处重复使用同一套表格配置的场景;一次性表格仍可用 useTable。
主要能力:通过 tableFeatures 组合特性(如 rowSortingFeature),用 createTableHook 生成 hook,并导出 useAppTable、createAppColumnHelper 及类型化的 useTableContext。支持可选的 tableComponents 组件注册表,通过 table.AppTable、table.AppCell、table.AppHeader 渲染,注册组件内用对应上下文 hook 取数,避免逐层传参。
用法要点:保持每张表的选项响应式,refs/computed 原样传入,例如 useAppTable({ columns, data }) 而非 data.value;显式导出上下文 hook 的类型,避免注册组件与 hook 模块互相导入时形成循环推断。
限制与常见错误:不要在未使用 App 包装器时调用 useTableContext,类型化上下文只存在于对应动态包装器之下;JSX 中 Subscribe 需用显式 children prop,而非插槽写法;不要解构 createTableHook 的返回值直接导出,以免循环推断。API 细节可查看 node_modules/@tanstack/vue-table/dist/createTableHook.d.ts。