• 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 - 最长等待请求的毫秒数,超时会显示加载错误消息。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    import useSWR from 'swr'
    const apiUrl = `/api/users/${userId}`
      const { data, error } = useSWR(apiUrl)
    
    • 1
    • 2
    • 3

    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, {})
    
    • 1
    • 2
    • 3
    • 4

    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 })
       }
     })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    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
      })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    Pycharm远程连接服务器不能debug问题
    mmdetection/mmdetection3d多机多卡训练
    抖音上货API订单API:自动化上架商品批量获取商品详情信息
    通过二级域名解决1台云服务器搭建多个公众号后端服务的问题
    【ARM Coresight 系列文章 15.2 – components power domain 详细介绍】
    Linux 完整 Redis 安装配置教程(可用远程连接)
    Java stream流 常用记录
    接口测试在python、jmeter、postman工具下如何做断言?
    大一学生《Web编程基础》期末网页制作 HTML+CSS+JavaScript 网页设计实例 企业网站制作
    呈现高效的软件测试技术 助力软件研发提升10倍质量
  • 原文地址:https://blog.csdn.net/qq_36413371/article/details/134286150