swr.js请求库

211 阅读1分钟

swr.js中文文档

为什么使用 swr

仅需一行代码,你就可以简化项目中数据请求的逻辑,并立即拥有以下这些不可思议的特性:

  • 极速轻量可重用的 数据请求
  • 内置 缓存 和重复请求去除
  • 实时 体验
  • 传输和协议不可知
  • 支持 SSR / ISR / SSG
  • 支持 TypeScript
  • React Native

SWR 涵盖了性能,正确性和稳定性的各个方面,以帮你建立更好的体验:

  • 快速页面导航
  • 间隔轮询
  • 数据依赖
  • 聚焦时重新验证
  • 网络恢复时重新验证
  • 本地缓存更新 (Optimistic UI)
  • 智能错误重试
  • 分页和滚动位置恢复
  • React Suspense

基础使用

借助axios

import useSWR from "swr";
import axios from 'axios'
const fetcher = url => axios.get(url).then(res => res.data)
function App () {
  const { data, error } = useSWR('/api/data', fetcher, options)
  // ...
}

项目开发中使用

在实际开发中的使用,需要进行封装使用,提高代码质量;以及更具业务场景的一些自定义场景的实现; 主要是fetcher函数的实现;

  • 请求拦截部分,header,token, 一些公有参数的添加等;
  • 请求成功的响应处理,返回数据的处理;
  • 请求错误处理;
  • 轮询处理;
  • 请求超时,无权限等处理;
  • 请求缓存等

具体实现可看源码:

github.com/1738736002/…