news 2026/4/15 21:51:17

TANSTACK Query中,isFetching,isLoading,isPending的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TANSTACK Query中,isFetching,isLoading,isPending的区别

三个主要状态解释

先明确几个状态的含义(基于 TanStack Query 最新版本):

  • isFetching
    — 只要有请求正在进行(包括初次拉取 + 重试 + 后台刷新等),就会是true。TanStack

  • isLoading
    — 只在**第一次 fetch(初始加载)**期间是true。等第一个请求结束(无论成功还是失败),就变成false
    — 等价于:isFetching && isPending(v5 的新术语)TanStack

  • isPending
    — 表示当前是在等待某个 fetch 执行(最初或重试中)。它和isFetching类似但更精细(用于区分“初始”和“后台”状态)。TanStack

🤔 在设置retry: 5时状态如何变化?

假设你的请求第一次失败了,需要重试 5 次:

✔ 初次请求阶段

  • 第一次请求正在发送 →
    isFetching = true,isLoading = true,isPending = true

✔ 第一次失败后开始重试之前

React Query 默认会按退避策略延迟一段时间再发起下一次尝试。TanStack
这段短暂的延迟期间:

  • 没有活跃的请求在执行
    所以:

    • isFetching = false

    • isPending = false

  • 是否显示加载指示器取决于你 UI 的逻辑

    • 对用户来讲可能要显示“重试中…”

    • 但 React Query 本身没把 retry 的延迟期算作 fetching。

✔ 在每次重试的 fetch 执行中

在实际发起重试请求的那一刻:

  • 请求开始 →
    isFetching = true

  • 如果是重试过程,并非第一次成功 →
    isLoading通常是false(因为不是首次加载)

  • isPending可能会在某些状态组合下和isFetching共同为true(取决于版本和细节)TanStack

✔ 重试全部失败后

最终如果 5 次都失败:

  • 不再有 pending fetch →
    isFetching = false
    isLoading = false
    isPending = false

  • isError=true,错误信息出现在error属性里。

总结

状态初始请求请求失败 & 等待重试(延迟)重试请求发起中重试结束(成功/失败)
isFetching
isLoading
isPending(通常和 isFetching 配合)

所以:

不是在 5 次重试期间这三个状态一直是true
❌ 在“重试延迟期”里这些状态是false
⚠️isLoading特别只和首次加载相关。

📌 你可以如何显示“重试中”状态?

如果你想显示“正在执行重试”的 UI,可以结合:

const { isFetching, failureCount } = useQuery(...); 比如: if (isFetching && failureCount > 0) { return <span>重试中… (第 {failureCount} 次)</span> }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 13:41:59

SSH multiplexing复用连接:提升PyTorch-CUDA-v2.7访问效率

SSH Multiplexing 复用连接&#xff1a;提升 PyTorch-CUDA-v2.7 远程开发效率 在现代深度学习开发中&#xff0c;越来越多团队依赖远程 GPU 服务器进行模型训练与调试。典型的工作流包括通过 SSH 登录主机、上传代码、启动容器、查看日志、映射 Jupyter 端口等操作。然而&#…

作者头像 李华
网站建设 2026/4/16 10:16:46

Python多线程:自动化测试中的高效运用指南

多线程在自动化测试中是一项强大的工具&#xff0c;可以提高测试效率和加速任务执行。本文将深入探讨Python中多线程的应用&#xff0c;包括多线程基础、线程池的使用、线程同步、异常处理等方面。通过丰富的示例代码&#xff0c;将全面了解如何在自动化测试中有效地运用多线程…

作者头像 李华
网站建设 2026/4/16 11:46:50

2025 AI市场舆情分析利器榜单揭晓!原圈科技如何一马当先?

在众多AI市场舆情分析工具中&#xff0c;原圈科技凭借其卓越的技术能力、对高客单价行业的深刻理解和服务稳定性&#xff0c;被普遍视为行业内的头部代表。作为一套从洞察到增长执行的AI全链路解决方案&#xff0c;原圈科技的AI市场舆情分析在多个维度下表现突出&#xff0c;能…

作者头像 李华
网站建设 2026/4/15 23:50:14

如何利用 Endpoint Central 提高企业终端管理效率

在信息化快速发展的今天&#xff0c;企业的终端设备—包括桌面、笔记本、服务器和移动设备等—成为了工作和生产的核心工具。与此同时&#xff0c;终端设备的管理和安全性成为 IT 部门必须面对的重要挑战。为了有效地应对这些挑战&#xff0c;企业需要一款强大且易于操作的终端…

作者头像 李华
网站建设 2026/4/15 16:10:37

上门洗车新便捷:JAVA APP系统源码解析

以下是对基于JAVA的上门洗车APP系统源码的详细解析&#xff0c;涵盖技术架构、核心功能、关键代码示例及市场应用价值&#xff1a;一、技术架构&#xff1a;分层解耦与高可用设计前端层跨平台开发&#xff1a;采用UniApp&#xff08;Vue语法&#xff09;实现一套代码多端部署&a…

作者头像 李华
网站建设 2026/4/16 9:04:34

简单理解:抢占优先级和响应优先级?什么情况下用什么组合?

这两个概念是中断管理的核心&#xff0c;直接决定了多个中断同时触发时的执行规则 —— 结合你之前配置的 NVIC_SetPriorityGrouping(2)&#xff08;分组 2&#xff0c;抢占 2 位 响应 2 位&#xff09;&#xff0c;我用通俗的语言 实战例子讲透&#xff0c;让你能直接对应到…

作者头像 李华