2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

TanStack DB 发布 Beta 版本,支持反应式查询、乐观变更和本地优先同步

作者:Daniel Curtis

  • 2025-09-02
    北京
  • 本文字数:1136 字

    阅读完需:约 4 分钟

大小:493.22K时长:02:48
TanStack DB发布Beta版本,支持反应式查询、乐观变更和本地优先同步

TanStack Query 背后的团队 TanStack 宣布 TanStack DB 发布 beta 版本,这是一个嵌入式的客户端数据库,旨在为前端应用程序带来反应式查询、事务性变更和实时同步。该库建立在 TanStack Query 之上,目的是简化现代 Web 应用程序中的复杂状态管理和缓存。


TanStack DB 引入了几种新功能,包括类型化集合、实时查询和事务性变更器(mutator)。集合会作为记录的规范化存储,而实时查询允许开发者订阅结果,这些结果会随着底层数据的变化而增量更新。与传统的重新运行查询不同,TanStack DB 使用差分(differential)数据流引擎仅重新计算受变更影响的部分查询,即使对于复杂的连接,也能实现亚毫秒级的查询更新。


其中一个主要特性是支持乐观变更。开发者可以在本地应用更改,并立即在 UI 中反映它们,而 TanStack DB 则在后台处理同步和回滚。这种方法基于 TanStack Query 中的模式,但目的是使它们更可靠。


集合、实时查询和变更可以使用与现有 TanStack Query 用户类似的格式,文档中包含了示例:

const todoCollection = createCollection({
// ...config
onUpdate: updateMutationFn,
})

const { data: todos } = useLiveQuery((q) =>
q.from({ todo: todoCollection }).where(({ todo }) => todo.completed)
)
const complete = (todo) => {
todoCollection.update(todo.id, (draft) => {
draft.completed = true
})
}
复制代码


TanStack DB 还强调了独立于后端实现的同步方式。数据可以从 REST、GraphQL、轮询 API 或实时同步提供者(如 ElectricSQL)加载或同步。这使得可以预加载大型数据集并保持同步,而无需引入自定义状态管理层或手动协调的逻辑。


来自开发者社区的早期反馈既表现出兴奋也表现出谨慎。在 r/reactjs 上,一位开发者这样评论道:这看起来很有前景,但仍然显得粗糙。我不会把我的应用押宝在 Beta 版本上。


在 Hacker News 上,鉴于当前的既有实现使用起来很困难,有人对该特性表示很兴奋:我感到非常兴奋。当前的客户端数据库实现很难使用。它会支持 IndexedDB 吗?


在 Medium 上,Shaya 详细论述了 TanStack DB 是如何解决前端框架中乐观更新方面长期存在的问题的:能够仅使用 TanStack Query 进行乐观更新吗?坦白说,它们有点糟糕……TanStack DB 通过集合、实时查询和乐观变更扩展了 TanStack Query,以保持 UI 的反应性、一致性和极速性。


TanStack DB 仍处于 beta 阶段,维护者提醒说,目前应将其视为实验性的。然而,它的逐步采用模型允许开发者将其逐渐集成到现有的 TanStack Query 应用程序中,而且它已经为 React、Vue、Solid、Svelte 或 VanillaJS 提供了适配器。


TanStack DB 是开源的,可以在 npm 上找到。官方站点提供了文档、示例和指南。


原文链接:

TanStack DB Enters Beta with Reactive Queries, Optimistic Mutations, and Local-First Sync

2025-09-02 13:004338

评论

发布
暂无评论

【二级等保】二级等保怎么做?价格怎么样?贵吗?

行云管家

运维 网络安全 堡垒机 运维审计

【LeetCode】调整数组顺序使奇数位于偶数前面Java题解

Albert

LeetCode 5月月更

深入解读SQL的聚集函数

华为云开发者联盟

sql GaussDB(DWS) 聚集操作 主键列

数据库系统最佳实践系列 --- 使用 prepared statement

KunlunBase昆仑数据库

国产数据库

文档管理:企业进步的重要因素

小炮

文档管理

手绘图解java类加载原理

华为云开发者联盟

Java 类加载 元数据 类静态

netty系列之:epoll传输协议详解

程序那些事

Java Netty 程序那些事 5月月更

leetcode 451. Sort Characters By Frequency 根据字符出现频率排序

okokabcd

LeetCode 排序

数据库堡垒机品牌有哪些?买哪家划算?咨询电话多少?

行云管家

网络安全 信息安全 数据安全 堡垒机

小程序转APP,小团队也能实现数字化生态闭环

Speedoooo

APP开发 跨端开发 小程序容器 小程序转app 跨端运行

昆仑数据库可定制的数据分片方案

KunlunBase昆仑数据库

国产数据库

《阿里云代码安全白皮书》5个维度应对3类代码安全问题

阿里云云效

云计算 阿里云 代码管理 代码托管 代码安全

什么?JDK8的ConcurrentHashMap 有 Bug

skow

Java 后端 并发

AI简报-FIX你的模型

AIWeker

人工智能 深度学习 5月月更 AI简报

EMQX+阿里云Tablestore多场景一站式IoT数据解决方案正式发布

EMQ映云科技

阿里云 物联网 一站式平台 emqx 5月月更

KunlunBase 查询优化(三)排序下推

KunlunBase昆仑数据库

国产数据库

谈谈技术能力

阿里巴巴中间件

阿里云 程序员 中间件 技术思考

手把手教你搭个Frida + Sekiro Rpc框架

奋飞安全

KunlunBase 查询优化(二)Project 和 Filter 下推

KunlunBase昆仑数据库

国产数据库

MySQL-8.0 Group Replication 研究与改造汇总

KunlunBase昆仑数据库

国产数据库 MySQL 数据库

2022年中国消费金融数字化发展分析

易观分析

消费金融

昆仑分布式数据库系统简介 之 SQL 标准兼容性和日常维护工作

KunlunBase昆仑数据库

国产数据库

什么是显卡?GPU服务器到底有什么作用?

Finovy Cloud

gpu GPU服务器

关于加密通道规范,你真正用的是TLS,而非SSL

华为云开发者联盟

TLS 加密 ssl 加密通道 CA系统

三分钟让你了解 vue 中的父子通讯

CRMEB

烧录OpenHarmony 3.2(尝鲜版)步骤

离北况归

OpenHarmony OpenHarmony3.2

昆仑分布式数据库Sequence功能及其实现机制

KunlunBase昆仑数据库

国产数据库

火山引擎A/B测试私有化实践

字节跳动数据平台

实验 火山引擎 私有化部署 ab测试

满满干货!手把手教你实现基于eTS的HarmonyOS分布式计算器

HarmonyOS开发者

HarmonyOS ETS

KunlunBase 查询优化(一)

KunlunBase昆仑数据库

MySQL 数据库 国产数据库

TanStack DB发布Beta版本,支持反应式查询、乐观变更和本地优先同步_数据库_InfoQ精选文章