用途:作为 TanStack Angular Table v8 升级到 v9 的完整破坏性变更清单,构造、功能注册、状态、渲染与类型需一并迁移。前置条件为 Angular 19 或更新(@angular/core >=19)。
主要能力与用法:用注入上下文中的 injectTable 替换 createAngularTable;将静态或昂贵的 features、columns 提升到响应式初始化器之外;把 features、行模型和函数注册表移入 tableFeatures;更新 signal/atom 状态读取与 FlexRender 用法。示例:const features = tableFeatures({ rowSortingFeature, sortedRowModel: createSortedRowModel(), sortFns: { alphanumeric: sortFn_alphanumeric } }),并在组件中 readonly table = injectTable(() => ({ features, columns, data: this.data() }))。
行模型映射:getFilteredRowModel 等改为 filteredRowModel: createFilteredRowModel() 等槽位,工厂不接收参数;filterFns、sortFns、aggregationFns 为同级功能槽。状态方面,table.getState().sorting 改为 table.atoms.sorting.get(),顶层 onStateChange 移除,改用分片回调、外部 atom 或 store 订阅。渲染使用 FlexRender 及 *flexRenderCell、*flexRenderHeader、*flexRenderFooter 等指令。
限制与注意:功能 API 受功能门控,需在 tableFeatures 中先注册依赖功能;实例方法位于共享原型,不可解构或裸传;列固定逻辑名由 left/right 改为 start/end;enablePinning 拆分为 enableColumnPinning 与 enableRowPinning;多数类型新增 TFeatures 首参;RowData 变为 Record<string, any> | Array<any>。stockFeatures 仅作临时审计桥接。可在 node_modules/@tanstack/angular-table/dist/types/ 查看公开 API。