react如何控制全局loading_用React+Antd封装Axios实现全局Loading效果

前言

今天在做react后台管理的时候要实现一个全局Loading效果,通常使用axios库与后端进行数据交互。为了更好的用户体验,在每次请求前添加一个加载效果,让用户知道在等待加载。

要实现这个功能,我们可以在每个组件请求手动添加加载效果返回后再将其隐藏,但如果每个请求都这么做,就要做多次重复设置显得很麻烦,但好处是可以设置定制多种请求效果。但考虑到该项目场景为后台管理系统,给管理员使用,花样可以不用搞太多,统一优雅即可,故采取全局设置loading效果。

开发版本

"react": "^16.13.1",

"antd": "^4.0.4",

"axios": "^0.19.2"

代码说明

通过 axios 提供的请求拦截和响应拦截的接口,控制 loading 的显示或者隐藏。在此我还设置了没有网络和网络超时的提示信息

采用antd的Spin组件来实现loading效果,message组件来进行消息提示(antd.css这里没有引入,是因为我设置了按需加载)

定义变量requestCount作为计数器,确保同一时刻如果有多个请求的话,不会同时添加多个 loading,而是只有1个,并在所有请求结束后才会隐藏 loading。

默认所有请求都会自动有 loading 效果。如果某个请求不需要 loading 效果,可以在请求 headers 中设置 isLoading 为false。

步骤

1.在src目录下新建一个文件axios.js

import axios from 'axios&

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值