SWR 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
SWR 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
SWR 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
SWR 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
SWR 获得 2020 年度 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 指数为
超过 的项目

评论 (0)

加载中
更多评论
发表了资讯
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
发表了资讯
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
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于大前端专区
2019/11/23 23:49

从 UX 与 DX 来谈一谈 React SWR

自从 9102 年初 react 推出了 Hook 之后,我就开始在私人项目中先行了。不得不说的是,react Hook 的确足够“跨时代”。大量的文章研读以及伴随着项目中组件的改造,对Hook 的优点,缺点,以及本身的机制也有一定的了解。 如果你是 Hook 初学者,建议先阅读 [ https://usehooks.com/]( https://usehooks.com/ ) 以及 [Dan Abramov 的个人博客]( https://overreacted.io/ )。 伴随着 Hook 时代的带来,react 社区也是到来了无 Ho...

2
1
2020/09/21 08:40

React hooks中swr的原理和源码解析

授权转载自:JonyYu https://github.com/forthealllight/blog/issues/61 swr是一个hook组件,可以作为请求库和状态管理库,本文主要介绍一下在项目中如何实战使用swr,并且会解析一下swr的原理。从原理出发读一读swr的源码 什么是swr swr的的源码 一、什么是swr useSWR 是 react hooks 中一个比较有意思的组件,既可以作为请求库,也可以作为状态管理的缓存用,SWR 的名字来源于“stale-while-revalidate”, 是在HTTP RFC 5861...

0
0
发表了博客
2020/03/19 20:26

useRequest-蚂蚁中台标准请求 Hooks

https://juejin.im/post/5e457100e51d4534ec004e21 useRequst 文档:hooks.umijs.org/zh-CN/async Umi Hooks Github 地址:github.com/umijs/hooks useRequest 是一个超级强大,且生产完备的网络请求 Hooks,目前已经成为蚂蚁中台最佳实践内置网络请求方案。在蚂蚁内部中台应用,写网络请求,都推荐用 useRequest。 useRequest 可能是目前社区中最强大,最接地气的请求类 Hooks 了。可以覆盖 99% 的网络请求场景,无论是读还是写...

0
0
发表了博客
2020/03/19 20:06

useRequest-蚂蚁中台标准请求 Hooks

https://juejin.im/post/5e457100e51d4534ec004e21 useRequst 文档:hooks.umijs.org/zh-CN/async Umi Hooks Github 地址:github.com/umijs/hooks useRequest 是一个超级强大,且生产完备的网络请求 Hooks,目前已经成为蚂蚁中台最佳实践内置网络请求方案。在蚂蚁内部中台应用,写网络请求,都推荐用 useRequest。 useRequest 可能是目前社区中最强大,最接地气的请求类 Hooks 了。可以覆盖 99% 的网络请求场景,无论是读还是写...

0
0
发表了博客
2018/11/21 15:16

FFmpeg(五) 重采样相关函数理解

一、重采样流程   重采样(解码音频数据之后格式不可以直接播放,需要重采样,类似图像的像素转换)     1.分配上下文     2.设置参数(分为(前几个是)输出格式和(后几个)输入格式,两个相对应的) 可以通过改变样本率来改变音频的播放速度,但是会失帧。     3.初始化     4.开始转换 二、相关函数说明    1、 SwrContext *actx = swr_alloc(); //进行分配和初始化    2、 actx = swr_alloc_set_...

0
0
2020/05/21 18:55

云图说 | 容器交付流水线ContainerOps,助力企业容器化转型

摘要: 华为云容器镜像服务SWR推出容器交付流水线(ContainerOps)可以帮助企业容器化转型。 容器交付流水线(ContainerOps)是华为云容器镜像服务(SWR)推出的面向从源代码到生产上线全流程服务,提供镜像仓库、镜像构建、版本管理、交付流水线等一系列服务,助力企业落地容器DevOps最佳实践。到底如何进行容器化转型,“云图说”为您详解: 点击 “了解更多”,容器镜像服务 SWR等着您!...

0
0
2020/03/19 17:35

改变音调

改变声音的音调,有时候很好玩,像Talking Tom里面的那只猫一样,尖起声音学人说话很逗人。 这里小程介绍如何用soundtouch来做出这种效果。 soundtouch,一个开源的音效处理项目(用c++编写),可以更改音频的音调、播放速率、节拍等特征。 本文介绍如何控制音频的音调、节拍或播放速率。 大概的思路是这样的,先解码音频,得到pcm数据,再通过soundtouch来修改pcm数据,最后压缩为常见格式的音频。 小程上传了一个变调后的音频...

0
0
发表了博客
2020/11/25 12:45

容器与Docker

容器技术起源于Linux,是一种内核虚拟化技术,提供轻量级的虚拟化,以便隔离进程和资源。尽管容器技术已经出现很久,却是随着Docker的出现而变得广为人知。Docker是第一个使容器能在不同机器之间移植的系统。它不仅简化了打包应用的流程,也简化了打包应用的库和依赖,甚至整个操作系统的文件系统能被打包成一个简单的可移植的包,这个包可以被用来在任何其他运行Docker的机器上使用。 容器和虚拟机具有相似的资源隔离和分配方式...

0
0
2020/11/02 16:46

容器、Docker、虚拟机,别再傻傻分不清

摘要:容器技术起源于Linux,是一种内核虚拟化技术,提供轻量级的虚拟化,以便隔离进程和资源。尽管容器技术已经出现很久,却是随着Docker的出现而变得广为人知。 容器技术起源于Linux,是一种内核虚拟化技术,提供轻量级的虚拟化,以便隔离进程和资源。尽管容器技术已经出现很久,却是随着Docker的出现而变得广为人知。Docker是第一个使容器能在不同机器之间移植的系统。它不仅简化了打包应用的流程,也简化了打包应用的库和依...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
7 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部