用途:为 Angular 应用接入 TanStack DB 的实时查询能力,@tanstack/angular-db 会重新导出 @tanstack/db 的全部内容。
主要能力:核心是 injectLiveQuery 注入函数,返回带 Angular Signal<T> 属性的对象,模板中需以 () 调用,例如 query.data()、query.status()、query.isLoading()、query.isReady()、query.isError(),另有 query.state()、query.collection() 等。支持静态查询、响应式 params、配置对象(如 gcTime)、传入预建 collection,以及返回 undefined/null 来禁用条件查询。当 params 返回值变化时,旧 collection 被销毁并重建查询。
使用方式:必须在注入上下文(字段初始化器或构造函数)中调用,不可放在 ngOnInit 等生命周期钩子内。响应式取值应使用 params 模式而非直接在 query 函数中读取信号。查询支持 includes 分层数据,子字段默认为实时 Collection,可由子组件用 injectLiveQuery 订阅;使用 toArray() 则子结果为普通数组,父级会在子数据变化时重新发出。
适用场景:Angular 17+ 信号输入、Angular 16 的 @Input、模板控制流与结构指令等。
限制与注意:资料未提供安装命令、版本要求、收费或性能数据,暂未提供。
示例(保持原样): import { injectLiveQuery, eq, not } from '@tanstack/angular-db'
ngOnInit 中调用 injectLiveQuery 是错误用法。