react:swr接口缓存案例代码

 更新时间:2023年11月10日 11:17:55   作者:小强有个dream  
useSWR 是一个 React Hooks,是 HTTP 缓存库 SWR 的核心方法之一,SWR 是一个轻量级的 React Hooks 库,通过自动缓存数据来实现 React 的数据获取,本文给大家介绍react:swr接口缓存案例详解,感兴趣的朋友一起看看吧

useSWR 是一个 React Hooks,是 HTTP 缓存库 SWR 的核心方法之一。SWR 是一个轻量级的 React Hooks 库,通过自动缓存数据来实现 React 的数据获取。
第一个参数是被缓存的数据的 key,
第二个参数是一个函数,该函数返回数据或者一个 Promise
第三个参数是一个配置对象,它允许我们对 useSWR 请求的行为进行一些自定义设置, 参数如下

revalidateOnFocus - 如果设置为 true,窗口焦点切换到此页面时将自动重新验证数据。
revalidateOnReconnect - 如果设置为 true,每次从离线到在线时将自动重新验证数据。
revalidateOnMount - 如果设置为 true,每次组件挂载时都会自动重新验证数据。
refreshWhenHidden - 如果设置为 true,在文档不可见时还是会自动重新验证数据。
refreshWhenOffline - 如果设置为 true,即使 offline,也会自动重新验证数据。
suspense - 如果设置为 true,在重新验证数据之前将显示占位符内容来保持组件渲染的持续性。
errorRetryCount - 它是重试次数,默认值为 3,当数据验证失败时,它将尝试重新验证数据的次数。
errorRetryInterval - 毫秒数,当数据验证失败后重试的间隔时间。默认值为 5 秒。
dedupingInterval - 重复验证响应的缓存时间,以毫秒为单位。
focusThrottleInterval - 切换页面焦点之后,重试时间的等待时间。
loadingTimeout - 最长等待请求的毫秒数,超时会显示加载错误消息。
import useSWR from 'swr'
const apiUrl = `/api/users/${userId}`
  const { data, error } = useSWR(apiUrl)

import useSWRImmutable from ‘swr/immutable’
useSWRImmutable 是一个 React Hooks,它是从 swr/immutable 库中导入的。它可以在缓存过期之前重新使用数据,以避免从服务器读取数据的时间和网络成本,帮助提高应用程序的性能和用户体验。
useSWRImmutable 并不是同步调用的。它是一个异步 Hook,在使用 useSWRImmutable 时,当我们作出数据请求时,它将使用本地缓存提供此数据。如果数据不存在于本地缓存中,则发起异步 API 请求,然后将结果存储在缓存中。下一次尝试获取这个数据的时候,useSWRImmutable 只需返回本地缓存中的数据。

import useSWRImmutable from 'swr/immutable'
// const { data, error } = useSWRImmutable(key, fetcher, options)
const { data: userInfo } = useSWRImmutable('userInfoConfig', getUserconfig, {})

import useSWRMutation from ‘swr/mutation’
useSWRMutation提供了简单且强大的方式来管理数据的更新和提交,从而让我们轻松地构建出 CRUD 应用程序。useSWRMutation Hook 可以帮助我们轻松地使用 REST API 进行数据更新、提交和创建。与传统的 useEffect 和 useState 结合使用方式不同,它可以处理HTTP请求的生命周期管理,并且还能自动更新缓存并在成功或失败时提供API响应。

const { trigger: cancleTrigger } = useSWRMutation('canleBuild', cancleBuild) as any
cancleTrigger(obj).then(res => {
   if (res.code === '0') {
     notification.success({
       message: '提示',
       description: '取消构建成功',
     })
     M({ ...appBuildparamsInfo, jobName })
   }
 })

import { useSWRConfig } from ‘swr’
useSWRConfig 是一个 React Hook,可以让我们轻松地配置和管理 useSWR Hook 的全局配置。假设我们要在所有使用 useSWR 的组件中统一配置 API 的缓存时间和错误重试次数,我们可以使用 useSWRConfig 来实现:

import { SWRConfig } from 'swr'
const { cache, mutate } = useSWRConfig({
    provider: () => new Map(),
    shouldRetryOnError: false,
    revalidateOnFocus: true,
    dedupingInterval: 10000,
    errorRetryInterval: 5000,
    errorRetryCount: 3
  })

到此这篇关于react:swr接口缓存的文章就介绍到这了,更多相关react:swr接口缓存内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • React使用Ant Design方式(简单使用)

    React使用Ant Design方式(简单使用)

    文章介绍了AntDesign组件库,它是基于AntDesign设计体系的ReactUI组件库,主要用于研发企业级中后台产品,文章详细讲解了如何下载和按需引入antd组件库,并通过一个小案例展示了如何使用antd进行布局和改造,最后,文章提醒大家在使用过程中可以参考官网的属性介绍
    2024-11-11
  • React图片压缩上传统一处理方式

    React图片压缩上传统一处理方式

    这篇文章主要介绍了React图片压缩上传统一处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • React使用setState更新数组的方法示例(追加新数据)

    React使用setState更新数组的方法示例(追加新数据)

    在 React 中,setState 是管理组件状态的核心方法之一,然而,当我们需要更新状态中的数组时,如何高效且安全地操作变得尤为关键,本文将详细解析以下代码的实现逻辑,帮助你掌握在 React 中追加数组数据的最佳实践,需要的朋友可以参考下
    2025-03-03
  • React 中合成事件的实现示例

    React 中合成事件的实现示例

    本文主要介绍了React 中合成事件的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • react-native 封装选择弹出框示例(试用ios&android)

    react-native 封装选择弹出框示例(试用ios&android)

    本篇文章主要介绍了react-native 封装选择弹出框示例(试用ios&android),具有一定的参考价值,有兴趣的可以了解一下
    2017-07-07
  • React使用React.lazy和Suspense实现组件懒加载

    React使用React.lazy和Suspense实现组件懒加载

    React 提供了 React.lazy 和 Suspense 这两个好东西,能让我们实现组件的懒加载,下面就跟随小编一起来了解一下如何使用它们实现懒加载的具体步骤吧
    2025-03-03
  • React浅析Fragments使用方法

    React浅析Fragments使用方法

    这篇文章主要介绍了React Fragments使用方法,关于react Fragments,React中一个常见模式是为一个组件返回多个元素。Fragments 可以让你聚合一个子元素列表,并且不在DOM中增加额外节点
    2022-12-12
  • React精髓!一篇全概括小结(急速)

    React精髓!一篇全概括小结(急速)

    这篇文章主要介绍了React精髓!一篇全概括小结(急速),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • 如何创建自己的第一个React 页面

    如何创建自己的第一个React 页面

    React是用于构建用户界面的JavaScript库,本文主要介绍了如何创建自己的第一个React页面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 浅谈React-router v6 实现登录验证流程

    浅谈React-router v6 实现登录验证流程

    本文主要介绍了React-router v6 实现登录验证流程,主要介绍了公共页面、受保护页面和登录页面,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05

最新评论