面向 Web 应用的异步状态管理与数据获取库,支持 React、Vue、Svelte 和 Solid。
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 数据每日更新。
相关项目
5万4222TypeScriptMIT更新于 12小时前
一个 React Hooks 表单库,用于管理表单状态与校验,支持 Web 和 React Native。
4.5万2501TypeScriptMIT更新于 17小时前
基于 React.js 构建文档网站的框架,支持 Next.js、Astro 及多种 Vite 生态的 React 框架。
1.3万745TypeScriptMIT更新于 23小时前
开源的 Next.js 原生无头 CMS 与应用框架,提供 TypeScript 后端和可定制的 React 管理后台。
4.5万4314TypeScriptMIT更新于 12小时前
精选的 React Native 应用开发库、工具、资讯与学习资源合集。
3.6万4050无许可证更新于 2个月前
面向 React Native 和 Web 应用的路由与导航库,提供栈式、标签页和抽屉式导航。
2.5万5142TypeScript无许可证更新于 6天前