Skip to main content

概述

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

动机

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

虽然大多数传统状态管理库非常适合处理客户端状态,但在处理异步或服务器状态方面,它们并不是那么出色。这是因为服务器状态是完全不同的。首先,服务器状态:

  • 在你不控制或拥有的位置上远程持久存储
  • 需要异步 API 来获取和更新
  • 意味着共享所有权,可以被其他人更改而不知道
  • 如果不小心,可能会在你的应用程序中变成“过时”的数据

一旦你理解了应用程序中的服务器状态的本质,就会出现更多的挑战,例如:

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

如果你没有被这个列表压倒,那么这意味着你可能已经解决了所有服务器状态问题,并且应该得到一个奖励。然而,如果你像绝大多数人一样,你还没有解决所有或大多数这些挑战,我们只是揭开表面而已!

React Query 是管理服务器状态的最佳库之一。它的开箱即用效果非常出色,无需配置,可以根据您的应用程序自定义。

React Query 让您能够克服服务器状态的棘手挑战和障碍,并在数据开始控制您之前控制您的应用程序数据。

更加技术性的一点,React Query 可能会:

  • 帮助您从应用程序中删除许多复杂和不理解的代码行,并用仅几行 React Query 逻辑替换。
  • 使您的应用