当前位置: 首页 > news >正文

WHAT - react-query(TanStack Query) vs swr 请求

文章目录

  • react-query
    • 什么是 TanStack Query(原 React Query)
    • 核心特性
  • TanStack Query vs SWR 对比
    • 具体特性对比
    • 哪个更适合你
  • 总结

react-query

react-query(现已更名为 TanStack Query)和 SWR 一样,都是专注于 远程数据获取、缓存和同步的库,但相比之下,它提供了更强的功能和更复杂的控制能力。

什么是 TanStack Query(原 React Query)

TanStack Query 是一个强大的数据获取库,适用于 React 和其他前端框架,专注于异步状态管理。它简化了远程数据获取、缓存、更新和同步的流程。

核心特性

特性描述
自动缓存和更新请求结果会被缓存,再次访问时优先读取缓存;支持背景更新(revalidation)
查询和变更分离(Query/Mutation)查询是获取数据,变更用于 POST/PUT/DELETE 等操作
自动重试/重取请求失败后自动重试,可配置重试策略
后台刷新(Refetching)支持页面重新聚焦或网络重新连接后自动重新请求
分页和无限加载支持内建 useInfiniteQuery
强大的 Devtools提供直观的开发者工具查看缓存、状态等
服务端渲染(SSR)支持支持 Next.js 等框架中的服务端数据获取
依赖查询(Dependent Queries)支持一个请求依赖另一个请求的结果

TanStack Query vs SWR 对比

具体特性对比

特性/维度TanStack QuerySWR(Stale-While-Revalidate)
作者/组织Tanner Linsley / TanStackVercel 团队(Next.js 作者)
API 设计更加结构化(如 useQuery, useMutation更简洁、基于 useSWR(key, fetcher)
缓存机制内建持久化、分页、依赖管理、缓存时间控制更轻量的缓存系统,支持简单配置
数据变更(POST等)明确用 useMutation 管理,配合缓存更新需手动使用 mutate() 触发更新
错误处理/重试自动重试 + 回退 + 拦截器机制支持基础重试逻辑,但不如 TanStack Query 灵活
分页/无限加载内建 useInfiniteQuery 等专用钩子支持分页加载(需配合 key 管理),较为原始
DevTools✅ 强大直观的浏览器调试工具❌ 没有官方 DevTools
依赖查询enabled 配置项可精细控制执行时机需要手动控制 key 或使用条件判断
学习曲线相对陡峭,功能多,需要理解 QueryClient 等简洁上手快,更偏向轻量级使用

哪个更适合你

使用场景推荐库
项目需要复杂的数据依赖、变更操作、分页等TanStack Query
小型项目/快速原型/只读请求为主SWR
需要优秀的开发者工具、缓存持久化支持TanStack Query
使用 Next.js,偏好轻量和灵活性SWR(与 Next 紧密集成)

总结

  • TanStack Query = 功能强大,适合中大型项目和复杂数据交互需求。
  • SWR = 轻量灵活,适合简单的数据获取场景或快速开发。

相关文章:

  • 浙大与哈佛联合开源图像编辑模型IC-Edit,实现高效、精准、快速的指令编辑~
  • .NET中使用HTTPS全解析
  • android-ndk开发(9): undefined reference to `__aarch64_ldadd4_acq_rel` 报错分析
  • 网络靶场基础知识
  • rest_framework学习之认证 权限
  • 重定向及基础实验
  • Python变量作用域
  • [学习]RTKLib详解:ephemeris.c与rinex.c
  • 如何修复WordPress数据库
  • Vscode (Windows端)免密登录linux集群服务器
  • Linux中的防火墙
  • 【Linux学习笔记】基础IO之理解文件
  • 学成在线之缓存
  • 【金仓数据库征文】金仓数据库 KES:MySQL 迁移实用指南
  • 服务器数据恢复—Linux操作系统服务器意外断电导致部分文件丢失的数据恢复
  • 《运维那些事儿》专栏总目录(持续更新)
  • 如何解决 Linux 系统文件描述符耗尽的问题
  • vue2 结合后端预览pdf 跨域的话就得需要后端来返回 然后前端呈现
  • vue中scss使用js的变量
  • uniapp上架苹果APP Store踩雷和部分流程注意事项(非完整流程)
  • 英国和美国就关税贸易协议条款达成一致
  • 【社论】以法治力量促进民企长远健康发展
  • 美联储主席:不打算先发制人地降息,将继续观望
  • 重庆动物园大熊猫被游客扔玻璃瓶,相同地方曾被扔可乐瓶
  • 巴方称印军发动24起袭击,巴境内6处地点遭袭致8人死亡
  • 中国首位、亚洲首位!赵心童夺得斯诺克世锦赛冠军