SuperAPI AI 工具集

tanstack-lit-table-migrate-v8-to-v9

前端与建站

查看项目

更新于 10-16 00:02

技能介绍

用途:作为 TanStack Lit Table v8 升级到 v9 的完整破坏性变更清单,v9 为当前 API。

主要能力:说明 Lit 侧核心变化——控制器改为仅接收宿主(host)构造,当前选项在渲染时传给 .table(...);features、row models 与注册表移入 tableFeatures;selected 状态、受控所有权与渲染方式更新;并列出共享 API 与类型重命名。

必要用法:前置依赖为 Lit ^3.1.3 与 @lit/context ^1.1.0。推荐顺序:用仅宿主、带类型的 TableController 替换 v8 的选项 thunk;在 render 中调用 controller.table(options, selector?);把 features、row models、registries 放入 tableFeatures;更新 selected 状态与渲染;应用全部重命名。示例:const features = tableFeatures({ rowSortingFeature, sortedRowModel: createSortedRowModel(), sortFns: { alphanumeric: sortFn_alphanumeric } }),控制器写作 new TableController<typeof features, Person>(this),渲染中调用 this.controller.table({ features, columns, data: this.data })。

关键映射:getCoreRowModel() 移除(核心行模型自动);getRowModel() 选项改为 tableFeatures 中的 createRowModel() 槽位;sortingFns 改为 sortFns;顶层 onStateChange 移除,改用按切片回调、外部 atoms 或 store 订阅。状态读取由 table.getState().sorting 改为 table.state.sorting、table.store.state.sorting 或 table.atoms.sorting.get()。渲染由 flexRender(def, context) 改为 FlexRender({ cell })、FlexRender({ header }) 或 FlexRender({ footer })。逻辑列固定中 left/right 别名改为 start/end。

限制:实例方法位于共享原型,需在实例上调用,不可解构或依赖对象展开;不要每次 render 重建控制器;table.subscribe 选择器需保持稳定;不可同时提供 atoms.pagination 与 state.pagination;stockFeatures 仅作临时审计桥接。API 以 node_modules/@tanstack/lit-table 与 @tanstack/table-core 的类型声明为准。