react lazyLoad学习记录
react lazyLoad学习记录
- 1.lazyLoad用处
- 2.使用
- 2.1 react-router-dom5版本写法
- 2.2 react-router-dom6版本写法
1.lazyLoad用处
默认例如首页,如果有好十几个甚至百个路由,react是会默认一下全部把路由组件一下全部加载的,极可能造成页面卡顿。react lazyLoad就可以解决这个问题。
2.使用
我用的react版本是18,注意在主index.js中<React.StrictMode>要去掉,不然会出现路由变化了,控制台也不报错但是页面不跳转的问题.

2.1 react-router-dom5版本写法
import React, { Component,lazy,Suspense} from 'react'
import {NavLink,Route} from 'react-router-dom'import Loading from './Loading'
const Home = lazy(()=> import('./Home') )
const About = lazy(()=> import('./About'))export default class Demo extends Component {render() {return (<div><div className="row"><div className="col-xs-offset-2 col-xs-8"><div className="page-header"><h2>React Router Demo</h2></div></div></div><div className="row"><div className="col-xs-2 col-xs-offset-2"><div className="list-group">{/* 在React中靠路由链接实现切换组件--编写路由链接 */}<NavLink className="list-group-item" to="/about">About</NavLink><NavLink className="list-group-item" to="/home">Home</NavLink></div></div><div className="col-xs-6"><div className="panel"><div className="panel-body">{/* fallback可以写一个组件,但是这个组件就不能懒加载了,本来的作用就是如果网络等原因导致页面空白的话就用组件来替代 */}<Suspense fallback={<Loading/>}>{/* 注册路由 */}<Route path="/about" component={About}/><Route path="/home" component={Home}/></Suspense></div></div></div></div></div>)}
}
2.2 react-router-dom6版本写法
主要是引入和Suspense的改变
import React, { Component, lazy, Suspense } from "react";
import { NavLink, Route,Routes } from "react-router-dom";import Loading from "./Loading";
const Home = lazy(() => import("./Home"));
const About = lazy(() => import("./About"));export default class Demo extends Component {render() {return (<div><div className="row"><div className="col-xs-offset-2 col-xs-8"><div className="page-header"><h2>React Router Demo</h2></div></div></div><div className="row"><div className="col-xs-2 col-xs-offset-2"><div className="list-group">{/* 在React中靠路由链接实现切换组件--编写路由链接 */}<NavLink className="list-group-item" to="/about">About</NavLink><NavLink className="list-group-item" to="/home">Home</NavLink></div></div><div className="col-xs-6"><div className="panel"><div className="panel-body">{/* fallback可以写一个组件,但是这个组件就不能懒加载了,本来的作用就是如果网络等原因导致页面空白的话就用组件来替代 */}<Suspense fallback={<Loading />}>{/* 注册路由 */}<Routes><Route path="/about" element={<About/>} /><Route path="/home" element={<Home/>} /></Routes></Suspense></div></div></div></div></div>);}
}
需要注意的是,lazyLoad只有在第一次请求那个路由组件才会去调用资源请求,第二次就不会再去调用的了,有缓存。
相关文章:
react lazyLoad学习记录
react lazyLoad学习记录1.lazyLoad用处2.使用2.1 react-router-dom5版本写法2.2 react-router-dom6版本写法1.lazyLoad用处 默认例如首页,如果有好十几个甚至百个路由,react是会默认一下全部把路由组件一下全部加载的,极可能造成页面卡顿。r…...
29 openEuler管理网络-配置网络绑定
文章目录29 openEuler管理网络-配置网络绑定29.1 使用nmcli29.2 使用命令行29.2.1 检查是否已安装Bonding内核模块29.2.2 创建频道绑定接口29.2.3 创建从属接口29.2.4 激活频道绑定29.2.5 创建多个绑定29 openEuler管理网络-配置网络绑定 29.1 使用nmcli 创建名为bond0的绑定&…...
RTT 全志D1s RDC2022纪念版开发板开箱使用分享与折腾记录
原文链接:https://bbs.aw-ol.com/topic/3021/ 作者caoxuetian 1:开发板介绍 RTT D1s RDC2022纪念版开发板是一块基于全志科技RISC-V内核 芯片 D1S的小尺寸开发板,尺寸仅为5.5cm*4cm,能够已非常小的体积带来舒适的开发感受&#…...
24日常实习万得一面面径
文章目录分析与复盘面试题分析与复盘 应该将项目进行复习好的,两个项目都应该对简历写的那些进行复习,以为日常不问项目的一面。哭死… 面试题 1.自我介绍 2.为什么从土木转到开发,学习java有哪些途径 3.介绍下项目中你觉得最有设计的模…...
MySQL的DML和DDL操作(1)
这里介绍几种DML操作INSERT INTO——插入记录插入一条记录插入一条记录 INSERT INTO table [(column [, column . ])] VALUES(value [,value . ]); 例子: insert into student values( 1,"承太郎" )default charset utf8;插入多条记录插入多条…...
Kafka系列之:Kafka生产者和消费者
Kafka系列之:Kafka生产者和消费者 一、Kafka生产者发送流程二、提高生产者吞吐量三、Kafka消费方式四、Kafka消费者总体工作流程五、按照时间消费Kafka Topic一、Kafka生产者发送流程 batch.size:只有数据积累到batch.size之后,sender才会发送数据,默认16K。linger.ms:如果…...
Linux进程间通信:信号量(一)
前提知识 在介绍信号量之前,先来看看一些概念和一些简单的前提知识: 进程间通信的前提是让不同的进程看到同一份资源。于是,就有提出让这种资源成为一种公共资源的方法,方法的提出,导致了一种新的问题的出现…...
Python笔记一之excel的读取
这里我常用的 python 对于 excel 的读取库有两个,一个是 xlsxwriter 用于操作 excel 的写入,一个是 xlrd 用于 excel 文件的读取。 使用的库的版本如下: xlsx1.2.6xlrd1.1.0 xlsxwriter 写入 excel 新建一个 excel import xlsxwriterpat…...
JavaScript Number 数字对象
文章目录JavaScript Number 数字对象JavaScript 数字所有 JavaScript 数字均为 64 位精度八进制和十六进制无穷大(Infinity)NaN - 非数字值数字可以是数字或者对象数字属性数字方法JavaScript Number 数字对象 JavaScript 只有一种数字类型。 可以使用也…...
设计模式-服务定位器模式
设计模式-服务定位器模式一、背景1.1 服务定位模式1.2 策略模式二、代码实战2.1 服务定位器2.2 配置ServiceLocatorFactoryBean2.3 定义一个支付的接口2.4 根据不同类型处理Bean2.5 controller层三、项目结构及测试结果3.1 测试结果3.2 项目结构及源码(欢迎star)四、参考资料一…...
Android Dalvik虚拟机 GC流程分析
前言 本篇继续介绍安卓dalvik虚拟机,介绍Dalvik虚拟技的GC流程。 GC结构体 dalvik/vm/alloc/Heap.h static const GcSpec kGcForMallocSpec {true, /* isPartial */false, /* isConcurrent */true, /* doPreserve */"GC_FOR_ALLOC" }; /* Not eno…...
opencv读入图片注意事项
来源:投稿 作者:蓬蓬奇 编辑:学姐 深度学习数据预处理中常用opencv读入图片,一般在__getitem__函数中调用。本文主要介绍opencv读取图片的一些细节以及注意事项。本文中使用的图片见第6节“opencv测试使用的图片”。 1.如何通过o…...
学习渗透测试,考CISP-PTE还是考NISP-PT证书呢?
其实两者都可以,但是要看考生的实际需求! 为什么说两者都可以? 两个证书都由中国信息安全测评中心颁发,CISP-PTE(注册信息安全渗透测试工程师),NISP-PT(国家信息安全水平考试渗透测试工程师),…...
记录自己遇到的关于Hashmap的面试题
一.麻烦讲述一下Hashmap的扩容原理 jdk1.8中的hashmap扩容原理 1.put流程图 首先贴一张图(图片来源于传送门),多谢大佬的美图,此图已经完美的描述了put的整个流程,我也就不想自己画了,嘿嘿: 2.hashmap中几个比较重…...
mysql数据库之sql语句性能分析工具
一、sql执行频率。 mysql客户端连接成功后,通过show [session | global] status 命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的INSERT/UPDATE/DELETE的访问频次。 #一个下划线代表一个字符 show global status like com_; 二、慢查…...
搭建SpringBoot项目
文章目录前言准备工具创建项目前言 为什么使用SpringBoot?它有什么好处? SpringBoot可以快速构建出独立的Spring应用,简化了配置文件。内嵌Tomcat服务器,无须手动部署war文件。 准备工具 idea2022navicat16postmanjdk1.8 创建项目 File-&…...
“一网统管”视频融合平台EasyCVR页面tab切换细节优化
EasyCVR视频融合平台基于云边端协同架构,能支持海量视频的轻量化接入与汇聚管理,借助大数据分析的决策判断,为网络摄像头、网络存储设备、智能终端、无人机、车载设备、移动执法仪、视频监控平台等提供一体化的视频接入、分发、存储、处理等能…...
【Python入门第二十天】Python Lambda
lambda 函数是一种小的匿名函数。 lambda 函数可接受任意数量的参数,但只能有一个表达式。 语法 lambda arguments : expression执行表达式并返回结果: 实例 一个 lambda 函数,它把作为参数传入的数字加 10,然后打印结果&…...
比特数据结构与算法(第四章_下)二叉树OJ(力扣:144,965,104,226,100,572)
144. 二叉树的前序遍历难度简单给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root [1,null,2,3]输出:[1,2,3]示例 2:输入:root [ ]输出:[ ]示例 3:输入&#…...
【C++】inline 内联函数
文章目录📕 概念📕 使用前的准备📕 使用📕 特性📕 概念 在 C 中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表…...
在线图片处理工具源码, 多功能编辑格式转换HTML单文件版
概述 在数字化内容创作与网站运营的日常中,高效、便捷的图片处理能力是提升工作效率的关键。无论是为了优化网页加载速度而进行的图片压缩,还是为了满足特定设计需求的格式转换与尺寸调整,都离不开得力的工具支持。为此,幽络源源…...
Java微服务全解:快速上手SpringCloud+SpringCloudAlibaba!
SpringCloud想必每一位Java程序员都不会陌生,很多人一度把他称之为“微服务全家桶”,它通过简单的注解,就能快速地架构微服务,这也是SpringCloud的最大优势。但是最近有去面试过的朋友就会发现,现在面试你要是没有Spri…...
审判直击:奥特曼与马斯克的控制权之争,谁在说谎?谁在惩罚谁?
审判中的奥特曼与马斯克 奥特曼表示,他们付出巨大努力创建的慈善机构不容窃取,还猜测马斯克两次试图搞垮它。在审判中,奥特曼展现出 "圣路易斯好小伙" 形象,一开始作证时有些紧张,后放松下来,其证…...
软件测试十年老兵自述:从月薪3K到年薪50W的跃迁密码
一个Bug改变的人生轨迹十年前的那个下午,我还记得格外清晰。作为某外包公司的“点点点”工程师,我机械地对着一个后台管理系统重复着测试用例。月薪3000,坐标二线城市,每天的工作就是执行别人写好的用例,发现Bug就提交…...
云代理商:Hermes Agent如何通过技能沉淀降低长期算力消耗
在 AI 智能体规模化落地的今天,算力成本高、重复推理多、长期运行效率衰减,已成为企业和开发者的核心痛点。传统 AI 智能体每处理一次相似任务,都要从零开始推理、反复调用工具,大量算力浪费在重复劳动中,长期使用成本…...
Python使用Matplotlib绘制基础可视化图表
在Python中进行数据可视化,最常用且功能强大的库是 Matplotlib。它可以帮助你轻松绘制出柱状图、折线图、饼图、散点图、直方图、箱线图、热力图、雷达图等。在开始之前,请确保你已经安装了Matplotlib库。如果没有,可以在终端或命令行中运行以…...
近屿AI学:白天做运维,晚上学AI,两天入职
何屿(化名)白天还在做传统运维,晚上已经开始补AI课程。听起来有点折腾,但他比谁都清楚,稳定并不等于安全。AI兴起后,岗位要求正在变,旧经验能撑多久,他心里没底。与其等到被动调整&a…...
基于LLM的风格化内容生成:从提示工程到系统化实践
1. 项目概述:一个基于AI的创意内容生成工具最近在折腾AI应用开发,发现了一个挺有意思的项目,叫“jasonkneen/vibeclaw”。乍一看这个名字,可能会有点摸不着头脑,但简单来说,它是一个利用大型语言模型&#…...
量子生成模型电路设计:特征相似性优化方法
1. 量子生成建模与电路设计概述量子生成模型作为量子机器学习的重要分支,正逐渐展现出其在特定任务上的潜在优势。这类模型的核心思想是利用量子系统的固有概率特性,通过参数化量子电路(PQC)来学习目标数据集的概率分布。与传统生…...
制作程序统计企业资质办理流程数据,梳理耗时节点,缩短资质办理周期,助力企业快速开展商务工作。
聚焦“企业资质办理流程数据的统计与周期优化”,适用于商务智能(BI)课程中的流程挖掘(Process Mining)与运营效率分析场景。一、实际应用场景描述在工程建设、招投标、医药、金融等行业,企业常需办理各类资…...
