当前位置: 首页 > news >正文

React自定义Hook之useRequest

一、简介

通过自定义hook,实现对http请求封装。

支持loading状态判断请求进度,支持获取请求正确和错误结果。

二、技术方案

use request hook

export const useRequest = (options) => {// 请求参数const [url, ...init] = options;// 请求返回的数据const [data, setData] = useState(null);// 请求返回的错误信息const [error, setError] = useState(null);// 请求的loading 状态const [loading, setLoading] = useState(false);function loader(){setLoading(true);return fetch(url, init).then((res) =>{setData(res.json());setLoading(false);}).catch((error) => {setError(error);setLoading(false); });}return {loader, data, error, loading};}

使用样例

const {data, loader, error, isLoading} = useRequest({url:'/api/get/user',method:'GET',headers:{"Content-Type":"application/json"}}
);
return (
<Button onClick = {()=>{loader()}}>获取数据</Button><div>{isLoading ? <span>加载中</span> : <span>data</span>}
</div>
)

http://www.lryc.cn/news/241292.html

相关文章:

  • 【LeetCode】挑战100天 Day13(热题+面试经典150题)
  • Android 11.0 SystemUI 去掉状态栏wifi流量上下行图标功能实现
  • 掌握Net User命令:轻松创建、修改、删除和查看本地用户帐户
  • 性能优化中使用Profiler进行页面卡顿的排查及解决方式
  • 深入了解Java8新特性-日期时间API_LocalDate类
  • PyTorch基本操作和工作流程
  • Android开发从0开始(ContentProvider与数据)
  • STM32_6(TIM)
  • Linux中flask项目开启https访问
  • Kubernetes 离线部署 Spinnaker
  • TypeScript 学习笔记 第三部分 贪吃蛇游戏
  • 【spring(一)】核心容器总结
  • 易点易动固定资产管理系统:实现全面的固定资产采购管理
  • 力扣:178. 分数排名(Python3)
  • raid磁盘阵列
  • SpringBoot学习笔记-实现微服务:匹配系统(上)
  • 重磅!全球首个“绿色黑灯工厂”落户中国,竟然是这家企业……
  • go语言学习-异常处理
  • 如何使用 JavaScript 实现图片上传并转换为 LaTeX 公式
  • 深刻理解MySQL8游标处理中not found
  • 甄知燕千云与SAP、EBS、TC、NS等应用深度集成,智能提单一键畅通,效能一键提升
  • 第99步 深度学习图像目标检测:SSDlite建模
  • 用EasyAVFilter将网络文件或者本地文件推送RTMP出去的时候发现CPU占用好高,用的也是vcodec copy呀,什么原因?
  • Vatee万腾科技的独特力量:Vatee数字时代创新的新视野
  • 【JavaSE】基础笔记 - 异常(Exception)
  • QTableWidget——编辑单元格
  • 编译QT Mysql库并集成使用
  • 利用企业被执行人信息查询API保障商业交易安全
  • 【深度学习】P1 深度学习基础框架 - 张量 Tensor
  • vue2 识别页面参数中的html