用途:TanStack DB 的 Collections 是带类型的数据存储,把数据加载与数据绑定解耦,可从 REST API、同步引擎或本地存储填充数据,再用实时查询统一访问。
主要能力:提供多种集合类型。QueryCollection(@tanstack/query-db-collection)用于经 TanStack Query 访问 REST API;ElectricCollection(@tanstack/electric-db-collection)用于 Electric 实时 Postgres 同步;PowerSyncCollection 用于 PowerSync 离线优先;RxDBCollection 用于 RxDB 本地持久化;TrailBaseCollection 用于 TrailBase 实时后端;LocalStorageCollection 与 LocalOnlyCollection 来自 @tanstack/db,分别用于浏览器 localStorage 持久化和纯内存状态。
使用方式:用 createCollection 配合对应 options 创建集合,需提供 getKey,可选 schema(如 Zod)校验插入/更新并转换类型。QueryCollection 支持 queryKey、queryFn、queryClient,以及 onInsert/onUpdate/onDelete 处理写操作。同步模式有 eager(默认,全量预加载,适合小于 1 万行)、on-demand(仅加载查询所需,适合大于 5 万行、搜索与目录)、progressive(先加载子集再后台同步全量)。ElectricCollection 通过 shapeOptions 配置,写操作可返回 txid 等待同步。集合 API 含 get、has、toArray、size 及 insert、update、delete,另有 utils.refetch、awaitTxId、awaitMatch、acceptMutations 等工具。
适用场景:REST 集成、实时同步、离线优先、本地持久化与内存 UI 状态。
限制:资料未提供收费、价格、平台支持范围及性能基准等信息。