Repolode
vercel

vercel/swr

一个用于数据请求的 React Hooks 库,先返回缓存数据,再在后台自动重新验证。

Star
32,496
Fork
1,401
未关闭 Issue
241
最近提交
5天前

这是什么?

SWR 是一个用于数据请求的 React Hooks 库。名字来自 stale-while-revalidate,这是 HTTP RFC 5861 中提出的缓存策略:Hook 先返回缓存中的旧数据,同时发起请求重新验证,拿到最新结果后更新组件。

使用时只需调用一个 `useSWR` Hook,传入一个 key(通常是 API 地址)和 fetcher 函数,即可得到 `data`、`error` 和 `isLoading`,数据变化时组件会自动重新渲染。fetcher 可以是任意异步函数,因此也能与你自己选用的请求库配合。

库内置缓存与请求去重,支持窗口聚焦和网络恢复时重新验证、轮询、分页、SSR 与 SSG,并提供乐观的本地数据更新、错误重试、TypeScript 类型以及 React Suspense 支持,同时可用于 React Native。

核心功能

  • 01内置缓存并自动去重相同请求
  • 02窗口聚焦和网络恢复时自动重新验证
  • 03支持轮询以获取实时数据更新
  • 04支持乐观的本地数据更新,界面即时响应
  • 05支持 SSR、SSG、TypeScript 和 React Suspense

适用场景

  • 在 React 或 Next.js 应用中获取并缓存 API 数据
  • 通过轮询或重新验证保持仪表盘和信息流的数据最新
  • 为表单和编辑操作构建乐观更新的界面
  • 在 React Native 应用中跨组件共享数据

标签

常见问题

swr 是什么?
一个用于数据请求的 React Hooks 库,先返回缓存数据,再在后台自动重新验证。 SWR 是一个用于数据请求的 React Hooks 库。名字来自 stale-while-revalidate,这是 HTTP RFC 5861 中提出的缓存策略:Hook 先返回缓存中的旧数据,同时发起请求重新验证,拿到最新结果后更新组件。
swr 可以免费使用吗?用的什么许可证?
swr 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
swr 还在维护吗?
活跃维护中。swr 最近一次提交是在 2026年10月16日。
swr 适合用来做什么?
在 React 或 Next.js 应用中获取并缓存 API 数据 通过轮询或重新验证保持仪表盘和信息流的数据最新 为表单和编辑操作构建乐观更新的界面 在 React Native 应用中跨组件共享数据
在哪里获取 swr?
源代码和安装说明在 GitHub 上:https://github.com/vercel/swr

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目