SuperAPI AI 工具集

tanstack-db

数据与分析

查看项目

更新于 10-16 02:35

技能介绍

用途:TanStack DB 是构建在差分数据流之上的响应式客户端存储,扩展 TanStack Query,加入集合(collections)、实时查询(live queries)与乐观变更(optimistic mutations)。适合需要本地优先数据、跨集合联表实时更新、乐观写入自动同步、通过 ElectricSQL 等后端实时同步,以及超出 TanStack Query 单查询缓存模型的响应式 UI。不适合简单取数展示、仅服务端组件应用、纯同步本地状态(useState/Zustand)或使用 Apollo/urql 归一化缓存的 GraphQL 场景。

主要能力:用 createCollection(queryCollectionOptions({...})) 定义带 getKey 的类型化集合;React 中用 useLiveQuery((q) => q.from({...}).where(...)) 自动随底层数据更新;支持 where 过滤(eq、gt、lt、like、and、or、not)、select 投影、orderBy 排序、join 跨集合联表、groupBy 聚合(count、sum、avg、min、max);insert/update/delete 提供乐观更新,失败自动回滚,并通过 onInsert/onUpdate/onDelete 同步服务端;支持 ElectricSQL 实时 Postgres 同步、liveQueryCollectionOptions 派生集合、localStorageCollectionOptions 本地持久化与跨标签页同步。v0.5+ 提供 Eager(默认,初始化加载全部)、On-demand(按查询谓词下推加载)、Progressive(首屏快、后台全量同步)三种同步模式。

使用方式:集合应在模块作用域定义,不要放在组件内;React 应用从 @tanstack/react-db 导入(其再导出核心);使用 REST API 需安装 @tanstack/query-db-collection;集合必须显式配置持久化处理器才会同步服务端。

限制:项目处于 beta,API 可能随版本变化;未配置持久化处理器时不会自动同步服务端;缺少 getKey 会导致无法唯一标识条目。相关 TanStack Query、ElectricSQL、local-first 模式可分别委派给对应技能,否则可用 npx skills add oakoss/agent-skills --skill tanstack-query 等命令安装。