概述

TanStack Query(以前称为 Vue Query)通常被描述为 Web 应用程序中缺失的数据获取库,但更技术地说,它使在您的 Web 应用程序中获取、缓存、同步和更新服务器状态变得轻而易举。

动机

大多数核心 Web 框架没有提供一种关于以整体方式获取或更新数据的固执己见的方法。因此,开发人员最终构建了元框架(其中封装了关于数据获取的严格观点),或者他们发明了自己的数据获取方式。这通常意味着拼凑基于组件的状态和副作用,或者使用更通用的状态管理库来存储和提供整个应用程序的异步数据。

虽然大多数传统状态管理库非常适合处理客户端状态,但它们不太擅长处理异步或服务器状态。这是因为服务器状态完全不同。首先,服务器状态

  • 远程持久保存在您可能无法控制或拥有的位置
  • 需要异步 API 来进行获取和更新
  • 意味着共享所有权,并且可能在您不知情的情况下被其他人更改
  • 如果您不小心,可能会在您的应用程序中变得“过时”

一旦您掌握了应用程序中服务器状态的性质,随着您的前进,甚至会出现更多挑战,例如

  • 缓存...(可能是编程中最难做的事情)
  • 将对相同数据的多个请求重复数据删除为单个请求
  • 在后台更新“过时”的数据
  • 知道数据何时“过时”
  • 尽可能快地反映数据更新
  • 性能优化,例如分页和延迟加载数据
  • 管理服务器状态的内存和垃圾回收
  • 使用结构共享记忆查询结果

如果您没有被该列表吓倒,那么这一定意味着您可能已经解决了所有服务器状态问题,并且应该获得奖励。但是,如果您像绝大多数人一样,您要么尚未解决所有或大多数这些挑战,而我们仅仅触及了表面!

TanStack Query 绝对是管理服务器状态的最佳库之一。它开箱即用,零配置,并且可以自定义以适应您应用程序的增长,效果非常好。

TanStack Query 允许您战胜并克服服务器状态的棘手挑战和障碍,并在您的应用程序数据开始控制您之前控制它。

从更技术的角度来看,TanStack Query 可能会

  • 帮助您从应用程序中删除许多行复杂且被误解的代码,并用少量的 TanStack Query 逻辑替换。
  • 使您的应用程序更易于维护,并且更易于构建新功能,而无需担心连接新的服务器状态数据源
  • 通过使您的应用程序感觉比以往更快、更灵敏,直接影响您的最终用户。
  • 可能帮助您节省带宽并提高内存性能

你说服我了,那么现在该怎么办?