概述

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

动机

大多数核心 Web 框架提供一种整体性的数据获取或更新方式。因此,开发人员要么构建封装了严格数据获取约定的元框架,要么发明自己的数据获取方式。这通常意味着将基于组件的状态和副作用拼凑在一起,或者使用更通用的状态管理库在应用程序中存储和提供异步数据。

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

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

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

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

如果您不被这个列表压垮,那么这一定意味着您可能已经解决了所有服务器状态问题,并应获得奖励。然而,如果您和绝大多数人一样,您要么尚未解决所有或大部分这些挑战,而我们才刚刚开始触及皮毛!

TanStack Query 绝对是管理服务器状态的*最佳*库之一。它**开箱即用,零配置,并且可以根据您的喜好进行定制**,随着应用程序的增长而不断发展。

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

更技术性地说,TanStack Query 很可能会

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

你把我劝服了,那现在怎么办?