
TanStack Query 背后的团队 TanStack 宣布 TanStack DB 发布 beta 版本,这是一个嵌入式的客户端数据库,旨在为前端应用程序带来反应式查询、事务性变更和实时同步。该库建立在 TanStack Query 之上,目的是简化现代 Web 应用程序中的复杂状态管理和缓存。
TanStack DB 引入了几种新功能,包括类型化集合、实时查询和事务性变更器(mutator)。集合会作为记录的规范化存储,而实时查询允许开发者订阅结果,这些结果会随着底层数据的变化而增量更新。与传统的重新运行查询不同,TanStack DB 使用差分(differential)数据流引擎仅重新计算受变更影响的部分查询,即使对于复杂的连接,也能实现亚毫秒级的查询更新。
其中一个主要特性是支持乐观变更。开发者可以在本地应用更改,并立即在 UI 中反映它们,而 TanStack DB 则在后台处理同步和回滚。这种方法基于 TanStack Query 中的模式,但目的是使它们更可靠。
集合、实时查询和变更可以使用与现有 TanStack Query 用户类似的格式,文档中包含了示例:
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
评论