SuperAPI AI 工具集

tanstack-db-core-live-queries

编程与开发

查看项目

更新于 10-16 00:02

技能介绍

用途:在 TanStack DB 中构建响应式派生集合(live query collection),底层用差分数据流(d2ts)做增量视图维护(IVM),数据变化时只重算增量。

主要能力:提供类 SQL 流式 API,包括 from、where、join/leftJoin/rightJoin/innerJoin/fullJoin、select、fn.select、groupBy、having、orderBy、limit、offset、distinct,以及 and/or/not、eq/gt/inArray/like 等操作符,字符串、数学、聚合函数均增量维护。支持 select 内嵌关联子查询(Includes),三种物化模式:集合、toArray() 数组、concat(toArray()) 拼接字符串。结果行带只读虚拟属性 $synced、$origin、$key、$collectionId。

使用方式:用 createLiveQueryCollection 简写或 createCollection(liveQueryCollectionOptions({...})) 创建;派生集合可作其他查询的数据源,应在模块作用域创建一次并复用。非响应式一次性快照用 queryOnce(可配 findOne);副作用用 createEffect 的 onEnter/onUpdate/onExit/onBatch,用 ctx.signal 取消,用完 dispose()。

限制:join 条件只能用 eq()(等值连接);limit/offset 必须配 orderBy;distinct 必须先 select;having 必须先 groupBy;fn.select() 不能与 groupBy() 同用;where 中不能用 ===,应使用 eq();避免在结果数组上用 JS filter/map,否则失去增量维护。

适用场景:UI 展示查询结果、响应数据变化、检查批量变更、脚本/加载器/数据导出/测试/LLM 上下文构建。React 钩子见 tanstack-react-db 技能。