当前位置: 首页 > 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>
)

相关文章:

  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • 有SSL证书的网站更容易收录吗?
  • CentOS7安装Docker遇到的问题笔记
  • 4、FFmpeg命令行操作8
  • 基于SSM框架的WEB管理系统
  • 继承【C++】
  • el-tree 与table表格联动
  • 机器学习第10天:集成学习
  • Java变量和数据类型
  • 【算法】区间调度算法
  • mysql5.6 修改密码
  • python运行hhsearch二进制命令的包装器类
  • Kafka、RocketMQ、RabbitMQ的比较总结Kafka、RocketMQ、RabbitMQ的比较总结
  • 【开源】基于JAVA的社区买菜系统
  • Golang基础-面向过程篇
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • export和import的用法总结
  • java中的hashCode
  • oldjun 检测网站的经验
  • ReactNative开发常用的三方模块
  • Spark RDD学习: aggregate函数
  • SpringBoot几种定时任务的实现方式
  • SQLServer之创建显式事务
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 笨办法学C 练习34:动态数组
  • 测试开发系类之接口自动化测试
  • 给github项目添加CI badge
  • 关于for循环的简单归纳
  • 后端_MYSQL
  • 聊聊directory traversal attack
  • 码农张的Bug人生 - 见面之礼
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 前言-如何学习区块链
  • 问题之ssh中Host key verification failed的解决
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • #pragma once与条件编译
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #数学建模# 线性规划问题的Matlab求解
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (十三)Maven插件解析运行机制
  • (四)模仿学习-完成后台管理页面查询
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • **PHP二维数组遍历时同时赋值
  • .form文件_SSM框架文件上传篇
  • .Net 6.0 处理跨域的方式
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .net访问oracle数据库性能问题
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .NET上SQLite的连接