用途:在 Solid 环境下管理 TanStack Table 的状态,理解固态后端原子与状态归属模型。核心是让 Table 作为状态协调器,除非其他子系统需要该值,否则由 Table 内部持有状态。没有 initialState、atoms、state 或 on[State]Change 时,所有注册切片均为内部状态。table.baseAtoms 是由初始状态创建的内部可写原子;table.atoms 是解析各切片当前归属者的只读派生原子;table.store 将已注册原子合并为一个只读扁平存储。
主要能力:Solid 适配器用 Solid 信号与 memo 支撑核心原子,原子 .get() 仅在 JSX、createMemo、createEffect 或其他被追踪所有者内参与依赖追踪。状态按特性划分:没有 rowPaginationFeature 就没有对应分页状态、原子、选项或方法。保持 features 与 columns 稳定,通过响应式 getter 暴露变化的数据,而不要在追踪计算中重建模型输入。
使用方式:用 createSignal 做受控状态时,把 setter 直接传给 onSortingChange,仅在需要校验、转换或副作用时包装;需要跨组件共享时,用 @tanstack/solid-store 的 createAtom 创建稳定原子并通过 atoms 传入,特性方法会直接写入。每个切片只配置一个归属者:外部原子优先于受控状态,后者再同步进内部基础原子。更新优先用特性 API(如 table.setSorting、table.nextPage、column.toggleVisibility、row.toggleSelected);内部状态才写 table.baseAtoms,外部原子归属的切片写对应原子。重置方面,特性重置默认用 table.initialState,传 true 则请求特性默认值,且可更新外部归属者;table.reset() 只重置内部基础原子。类型上外部状态用 PaginationState 等切片类型,完整状态用 TableState<typeof features>。
适用场景:需要 Solid 细粒度响应式的表格状态控制、共享状态或受控状态。限制:在非追踪作用域读取原子不会建立依赖;不要照搬 React 式宽泛重渲染,应只追踪实际使用的窄原子读取;全局 v8 的 onStateChange 选项已移除,需整体监听时观察 table.store。API 细节可查看安装包内 createTable.d.ts、reactivity.d.ts 与 table-core/dist。