SWR 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
SWR 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
SWR 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
操作系统 跨平台
软件类型 开源软件
所属分类 Web应用开发
开源组织
地区 不详
投 递 者
适用人群 未知
收录时间 2021-08-30

软件简介

SWR 是用于数据请求的 React Hooks 库。

“SWR” 这个名字来自于 stale-while-revalidate:一种由 HTTP RFC 5861 推广的 HTTP 缓存失效策略。这种策略首先从缓存中返回数据(过期的),同时发送 fetch 请求(重新验证),最后得到最新数据。

使用 SWR,组件将会不断地自动获得最新数据流。
UI 也会一直保持快速响应

特性

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

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

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

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

概览

import useSWR from 'swr'

function Profile() {
  const { data, error } = useSWR('/api/user', fetcher)

  if (error) return <div>failed to load</div>
  if (!data) return <div>loading...</div>
  return <div>hello {data.name}!</div>
}

该示例中,useSWR hook 接受一个字符串 key 和一个函数 fetcherkey 是数据的唯一标识符(通常是 API URL),并传递给 fetcherfetcher 可以是任何返回数据的异步函数,你可以使用原生的 fetch 或 Axios 之类的工具。

基于请求的状态,这个 hook 返回 2 个值:data 和 error

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
发表了资讯
2021/08/31 06:57

React 数据请求库 SWR 发布 1.0.0 版本

React 数据请求库 SWR 1.0 已正式发布。SWR 是用于数据请求的 React Hooks 库,其名字来自于stale-while-revalidate:一种由 HTTP RFC 5861 推广的 HTTP 缓存失效策略。这种策略首先从缓存中返回数据(过期的),同时发送 fetch 请求(重新验证),最后得到最新数据。 使用 SWR,组件将会不断地、自动获得最新数据流。 UI 也会一直保持快速响应。 新特性: 更轻量:1.0.0 版本相较上一版本 0.5.6 核心体积减小 41%,安装包体积减...

0
3
发表了资讯
2021/08/30 10:58

淘系前端架构周刊:SWR 发布 1.0 版本、Edge 新标签页底部出现无法关闭的广告

🗞 News React 数据请求库 SWR 发布 1.0.0 版本 新特性: 1.0.0 版本相较上一版本 0.5.6 核心体积减小 41%,安装包体积减小 52% 支持预加载数据作为 fallback:对于服务端渲染(SSR)、静态站点生成(SSG)等场景有更好的支持 支持 immutable 模式:可定义数据为 immutable,不重复请求 中间件(middleware)支持:多场景拓展(示例) 自定义缓存提供层:持久化、离线、测试等场景(文档) 中文 Release 概要...

0
4
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
6 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部