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

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> }
http://www.gsyq.cn/news/175388.html

相关文章:

  • 规模最大、性能最好,百度百舸助力北京人形打造开源具身多模态大脑模型 Pelican-VL1.0
  • 虹科HK-CoreTest:专业的CAN/CAN FD总线测试软件,高效易用
  • PyTorch-CUDA-v2.7镜像支持DeepSpeed,千亿参数模型训练可行
  • 震惊!2025年Agent元年揭秘:大模型编程开发已悄然改变程序员命运!小白必看AI编程Agent崛起,Cursor、GitHub Copilot如何重塑开发流程?
  • 2025年旋转涡流探伤仪生产厂家权威推荐榜单:钢丝绳探伤仪/不锈钢探伤仪/便携式探伤仪厂家精选 - 品牌推荐官
  • 2025年无线智能锁制造商推荐:学校公寓智能锁品牌厂家榜单 - 工业设备
  • 7款免费AI论文神器实测:1小时生成8000字文献综述,全文引用真实文献
  • SSH连接Docker容器运行PyTorch任务的完整流程说明
  • Python学习之datetime
  • DCDC电路中为什么有的上管是PMOS,有的是NMOS
  • 【干货】MegaRAG框架详解:多模态知识图谱引领RAG技术新突破!
  • 学长亲荐8个AI论文软件,专科生毕业论文格式规范神器!
  • 2025-2026年高低温冷热一体机实力生产商/制造商/供应商厂家推荐 - 品牌推荐大师
  • Vue.js 报错:Property ‘xxx‘ does not exist on type ‘unknown‘
  • jmeter做接口自动化测试,你可能只是个新手
  • 关于vsftpd外网访问
  • 包装设计公司哪家好? - 黑马榜单
  • PyTorch-CUDA-v2.7镜像支持TensorRT加速,推理性能翻倍
  • Jupyter Notebook魔法命令:提升PyTorch-CUDA-v2.7编码效率
  • 2025年太阳能路灯厂推荐,多功能太阳能路灯老牌厂家全解析 - 工业设备
  • PyTorch-CUDA-v2.7镜像助力AIGC内容生成,高效产出海量token
  • PyTorch-CUDA-v2.7镜像赋能大模型token批量生成服务
  • Docker build缓存技巧:基于PyTorch-CUDA-v2.7定制私有镜像
  • PaperzzAIPPT:当PPT从“折磨工具”变成“思想放大器”,你的汇报从此自带高光时刻
  • 上门洗车新便捷:JAVA APP系统源码解析
  • 高级语言从程序设计第十次
  • 计算机毕业设计springboot基于Spring的校园兴趣社团系统的设计与实现 基于Spring Boot框架的高校社团管理系统的设计与开发 Spring Boot驱动下的校园社团信息化管理平台构建
  • 收藏!2026大模型应用开发入门到大神全路径,小白/程序员高薪入局指南
  • Python的終極邊界:我在2KB記憶體中運行了完整的深度學習框架
  • IEC61850数据传输网关是什么