二、【React拓展】懒加载 lazy

news2024/12/28 19:54:58

文章目录

  • 1、适用点
  • 2、汇总

1、适用点

懒加载往往配合路由一起使用,此处修改的项目是 二、【React-Router5】路由的基本使用 中的项目

  1. 首先从react中引入lazy

    1. import { lazy } from 'react'
  2. 修改引入路由组件的写法

    1. // import About from './pages/About'
      // import Home from './pages/Home'
      const About = lazy(() => import('./pages/About'))
      const Home = lazy(() => import('./pages/Home'))
      
    2. 此时你会发现报错了

      1. 在这里插入图片描述

      2. 翻译过来就是

        1. 未捕获错误:响应同步输入时组件挂起。这将导致UI被加载指示符替换。要修复此问题,应使用startTransition包装挂起的更新
      3. 啥意思呢?意思就是需要使用 React 18 新特性:startTransition 进行处理,这里暂时不讨论(注此项小白未验证,后续若有新版笔记可能会做验证,静待后续更新)

      4. 使这里使用 =Suspense== 进行处理

    3. 使用 Suspense 解决问题

      1. 引入 Suspense:import { Suspense } from 'react'

      2. 给注册路由的地方套上,并配置 fallback 展示未加载完成时显示的内容

      3. <Suspense fallback={<h2>加载中...</h2>}>
            {/* Route 注册路由 */}
            <Switch>
                <Route path='/about' component={About} />
                <Route path='/home' component={Home} />
                <Redirect to='/about' /> {/* 兜底 */}
            </Switch>
        </Suspense>
        
      4. fallback 也可以配置成一个加载组件,丰富一下加载页面

2、汇总

import { lazy, Suspense } from 'react'
impot Loding from './components/Loading'

//1.通过React的lazy函数配合import()函数动态加载路由组件 ===> 路由组件代码会被分开打包
const Login = lazy(()=>import('@/pages/Login'))

//2.通过<Suspense>指定在加载得到路由打包文件前显示一个自定义loading界面
<Suspense fallback={<Loding/>}>
	<Switch>
        <Route path="/xxx" component={Xxxx}/>
        <Redirect to="/login"/>
	</Switch>
</Suspense>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/50987.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计Django房屋租赁信息系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

[附源码]Python计算机毕业设计SSM-乐室预约小程序(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

数字化下烟草行业人力资源管理实践与思考

“十四五”期间&#xff0c;高质量发展要求提质增效、科技创新、转型升级、数字化发展&#xff1b;在政府的工作报告中“创新”、“增长”、“机制”这些词不断提及&#xff0c;企业的发展重点也逐渐由高增长变为高质量发展。烟草行业如何对标世界一流管理&#xff0c;促进人力…

人工智能、机器学习概述

一、人工智能简单了解 1.人工智能发展必备三要素&#xff1a; 数据算法计算力 CPU,GPU,TPU计算力之CPU、GPU对比&#xff1a; CPU主要适合I\O密集型的任务 GPU主要适合计算密集型任务 2.人工智能、机器学习和深度学习 人工智能和机器学习&#xff0c;深度学习的关系 机器学…

野火FPGA进阶(2):基于I2C协议的EEPROM驱动控制

文章目录第49讲&#xff1a;基于I2C协议的EEPROM驱动控制理论部分设计与实现i2c_ctrli2c_rw_dataeeprom_byte_rd_wrtb_eeprom_byte_rd_wr第49讲&#xff1a;基于I2C协议的EEPROM驱动控制 理论部分 I2C通讯协议&#xff08;Inter-Integrated Circuit&#xff09;是由Philips公…

Flume环境搭建

1、新建一个专门放文件的目录&#xff1a;mkdir /export/server 2、将Flume的安装包上传到/export/server目录并解压&#xff0c;重命名&#xff1a; tar -zxvf apache-flume-1.8.0-bin.tar.gz -C /export/server mv apache-flume-1.8.0-bin flume 3、修改flume-env.sh文件…

[附源码]计算机毕业设计JAVA校园飞毛腿系统

[附源码]计算机毕业设计JAVA校园飞毛腿系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis …

第2-4-10章 规则引擎Drools实战(3)-保险产品准入规则

文章目录9.3 保险产品准入规则9.3.1 决策表9.3.2 规则介绍9.3.3 实现步骤9.3 保险产品准入规则 全套代码及资料全部完整提供&#xff0c;点此处下载 9.3.1 决策表 前面我们编写的规则文件都是drl形式的文件&#xff0c;Drools除了支持drl形式的文件外还支持xls格式的文件&am…

天宇优配|钠电池汽车要来了,续航达500公里!持续高成长股揭秘

钠电池行将进入量产元年。 11月29日&#xff0c;在钠离子电池产业链与规范开展论坛上&#xff0c;宁德年代研究院副院长黄起森表明&#xff0c;在乘用车使用方面&#xff0c;钠离子电池遍及可以满意续航400公里以下的车型需求&#xff0c;宁德年代则通过首创的AB电池体系集成技…

内容、文档和流程数字化如何支持精益原则

内容、文档和流程数字化如何支持精益原则 无论您身处哪个行业&#xff0c;想要在业务中取得真正的成功就必须把客户放在所有决策的中心位置&#xff0c;以便您能够给客户提供最佳服务。同时公司以最高效的方式向前发展也很重要。幸运的是&#xff0c;有一种方法可以确保两者兼而…

SpringCloud系列(四)Nacos 的三个有利配置(服务分级存储 / 环境隔离 / 负载均衡策略))

Nacos 的三个有利配置&#x1f697; Nacos 服务分级存储模型&#x1f697; &#x1f697; 环境隔离 - namespace&#x1f697; &#x1f697; &#x1f697; NacosRule 负载均衡策略我们都知道在京东商城购买商品&#xff0c;如果选择的是京东自营&#xff0c;那么几乎都是次日…

Springboot毕业设计毕设作品,农产品销售系统设计与实现

功能清单 【后台管理功能模块】 系统设置&#xff1a;设置关于我们、联系我们、加入我们、法律声明的信息。 广告管理&#xff1a;设置网站首页轮播图和链接地址。 留言管理&#xff1a;显示用户通过前台留言的列表&#xff0c;支持删除。 会员中心&#xff1a;显示所有注册用户…

Python图像处理【1】图像与视频处理

图像与视频处理0. 前言1. 在 3D 空间中显示 RGB 图像颜色通道1.1 图像表示1.2 在 3D 空间中绘制颜色通道2. 使用 scikit-video 读/写视频文件2.1 scikit-video 库2.2 读/写视频文件2.3 提取视频文件属性2.4 读取并保存视频3. 使用 OpenCV 从相机捕获实时视频4. 实现 Gotham 图像…

[附源码]计算机毕业设计springboot葡萄酒销售管理系统论文

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Python jupyter notebook Katex|Latex

目录 1.行内公式编辑 2.矩阵公式编辑 3.添加括号 4.添加图片 1.行内公式编辑 $\alpha\beta \gamma$点击control回车&#xff1b; 运行结果&#xff1a; 2.矩阵公式编辑 \begin{matrix} a & b &c \\ d & e & f \\ j & h & i \end{matrix} 点击…

基于随机森林实现特征选择降维及回归预测(Matlab代码实现)

目录 摘要&#xff1a; 1.随机森林&#xff1a; 2.随机森林的特征选取&#xff1a; 3.基于Matlab自带的随机森林函数进行特征选取具体步骤 &#xff08;1&#xff09;加载数据 &#xff08;2&#xff09;首先建立随机森林并使用全部特征进行车辆经济性预测 &#xff08;3&#…

Shell脚本学习指南(五)——变量、判断、重复动作

文章目录前言变量与算术变量赋值与环境参数展开展开运算符位置参数特殊变量算术展开退出状态退出状态值if-else-else-fi语句逻辑的NOT、AND与ORtest命令case语句循环for循环while与until循环break与continueshift与选项处理函数前言 变量对于正规程序而言很重要。处理维护有用…

Android: SimpleAdapter+GridView 简单图片展示

1&#xff1a;原理解析&#xff1a; 一个xml放总布局&#xff0c;一个xml放适配器要加载的模板&#xff08;我喜欢这样理解&#xff09;&#xff1b; java中写适配事件&#xff1b; 2&#xff1a;目录&#xff1a; 3&#xff1a;主布局&#xff1a;最重要的是要放一个GridView …

[附源码]Python计算机毕业设计Django港口集团仓库管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Google单元测试框架gtest之官方sample笔记3--值参数化测试

1.7 sample7--接口测试 值参数不限定类型&#xff0c;也可以是类的引用&#xff0c;这就可以实现对类接口的测试&#xff0c;一个基类可以有多个继承类&#xff0c;那么可以测试不同的子类功能&#xff0c;但是只需要写一个测试用例&#xff0c;然后使用参数列表实现对每个子类…