首页 > 其他分享 >React 之使用 antd 实现全局 loading

React 之使用 antd 实现全局 loading

时间:2023-12-21 18:11:58浏览次数:31  
标签:style loading dom React reqCount antd document

使用 antd 的 Spin 实现 Loading

代码如下:

fullLoading.tsx

import ReactDOM from "react-dom/client";
import { Spin } from "antd";

// 全局加载 loading

// 当前请求的个数
// 当同时有多个请求时,等所有请求完成后再关闭 loading
let reqCount = 0;

// 显示 loading
function show() {
  if (reqCount === 0) {
    const dom = document.createElement("div");
    dom.id = "loading";
    dom.style.position = "fixed";
    dom.style.top = "0";
    dom.style.right = "0";
    dom.style.bottom = "0";
    dom.style.left = "0";
    dom.style.background = "rgba(0, 0, 0, 0.5)";
    dom.style.display = "flex";
    dom.style.justifyContent = "center";
    dom.style.alignItems = "center";
    dom.style.zIndex = "9999";
    document.body.appendChild(dom);
    ReactDOM.createRoot(dom).render(<Spin size="large"></Spin>);
  }
  reqCount++;
}

// 隐藏 loading
function hide() {
  reqCount--;
  if (reqCount === 0) {
    const dom = document.getElementById("loading");
    if (dom) {
      document.body.removeChild(dom as HTMLElement);
    }
  }
}

const fullLoading = {
  show,
  hide,
};

export default fullLoading;

标签:style,loading,dom,React,reqCount,antd,document
From: https://www.cnblogs.com/zhenshu/p/17919791.html

相关文章

  • 纯css展示loading加载动画
    https://uiverse.io/barisdogansutcu/light-rat-32<svgviewBox="25255050"><circler="20"cy="50"cx="50"></circle></svg>svg{width:3.25em;transform-origin:center;animation:rot......
  • React项目中报错:Parsing error: The keyword 'import' is reservedeslint
    记得更改完配置后,要重启编辑器(如:VSCode)!!!记得更改完配置后,要重启编辑器(如:VSCode)!!!记得更改完配置后,要重启编辑器(如:VSCode)!!!这个错误通常发生在你尝试在一个不支持ES6模块语法的环境中使用import关键字。ESLint默认使用的是ES5语法,如果你想使用ES6或者更新的语法,你......
  • React Hooks的使用规范和最佳实践
    ReactHooks自从推出以来,彻底改变了React组件的编写方式。它们提供了一种在函数组件中使用state和其他React特性的能力,从而使得函数组件更加强大和灵活。本文将深入探讨useEffect、useMemo、useCallback和useState这四种常用Hooks的特点、优缺点,以及它们对组件性能的影响。我们还......
  • 100道React高频题整理(附答案背诵版)
    1、简述React有什么特点?React是一个用于构建用户界面的JavaScript库,由Facebook开发并维护。React有以下几个主要特点:声明式设计:React采用声明式设计,让代码更易于理解,且方便调试。你只需描述出你希望程序的最终状态,React会自动确保用户界面与你描述的状态保持一致。组件化:......
  • 让你 React 组件水平暴增的 5 个技巧
    让你React组件水平暴增的5个技巧神说要有光​ ​关注他 你经常看TA的内容最近看了一些AntDesign的组件源码,学到一些很实用的技巧,这篇文章来分享一下。首先,我们用create-react-app创建个React项目(选择typescript模版):npxcreate-r......
  • #yyds干货盘点#在 React Router 中使用 JWT
    创建一个React项目使用下方的指令会为我们创建一个项目$npmcreatevite@latestreact-jwt-cn然后我们选择 react 和 javascript 作为我们的框架和语言。在项目开始之前,我们要确保所有的依赖都已经被安装,所以我们要先执行$npminstall安装完毕后,在项目的根目录下,我们可以运......
  • React useEffect 在组件挂载时运行了两次
    在使用useEffect这个hook时,发现useEffect会执行2次useEffect(()=>{console.log("执行useEffect");},[]);控制台输出:执行useEffect执行useEffect查看疑难解答官方文档,官方解释如下:在开发环境下,如果开启严格模式,React会在实际运行setup之前额外运行一次......
  • 使用React+SpringBoot开发一个协同编辑的表格文档
    前言随着云计算和团队协作的兴起,协同编辑成为了许多企业和组织中必不可少的需求。通过协同编辑,多个用户可以同时对同一个文档进行编辑和更新,从而提高工作效率和协作能力。本文小编就将为大家介绍如何使用React+SpringBoot简单的开发一个协同编辑的表格文档。环境准备用到的开发......
  • 【Loading】Misc_ctfshow_WriteUp | _新手必刷_菜狗杯
    1-杂项签到题目分析查看十六进制文件,发现包含的信息不少:猜测存在隐藏文件,用binwalk查看,发现zlib文件:对文件进行分离……虽然但是这个签到题门槛怎么这么高?不会是……查了一下ctfshow提交flag的格式,搜索:好家伙。Flagctfshow{a62b0b55682d81f7f652b2614......
  • 【Loading】Web_ctfshow_WriteUp | _新手必刷_菜狗杯
    1-web签到题目分析读代码:<?php//注释信息/*#-*-coding:utf-8-*-#@Author:h1xa#@Date:2022-11-1017:20:38#@LastModifiedby:h1xa#@LastModifiedtime:2022-11-1109:38:59#@email:h1xa@ctfer.com#@link:https://ctfer.com*/error_r......