当前位置: 首页 > news >正文

react路由组件的lazyLoad

  • 预先准备两个路由组件(Home组件和About组件)

    import React, { Component } from 'react
    export default class About extends Component {render() {return (<div>about组件</div>)}
    }
    import React, { Component } from 'react'
    export default class Home extends Component {render() {return (<div>home组件</div>)}
    }
  • 准备一个普通组件(Loading组件)

    import React, { Component } from 'react'
    export default class Loading extends Component {render() {return (<div>Loading...</div>)}
    }
  • 同文件夹下新建index.jsx文件

    import React, { Component, Suspense, lazy } from 'react'
    import { NavLink,Route} from 'react-router-dom'
    import Loading from './Loading'
    // 1.通过React的lazy函数配合import()函数动态加载路由组件 ===> 路由组件代码会被分开打包
    const Home = lazy(()=> import('./Home'))
    const About = lazy(()=> import('./About'))export default class lazyLoad extends Component {render() {return (<div><NavLink to='/home'>Home</NavLink><NavLink to='/about'>About</NavLink>{/* 2.通过 <Suspense> 指定在加载得到路由打包文件前显示一个自定义loading界面 */}<Suspense fallback={<Loading/>}><Route path='/home' component={Home}></Route><Route path='/about' component={About}></Route></Suspense></div>)}
    }

    网速较慢时,可以看到loading组件效果。

相关文章:

  • Go 语言初探:从基础到实战
  • 【gltf-pipeline】安装gltf-pipeline 进行文件格式转换
  • 汽车电子中的深力科推荐一款汽车用功率MOSFET NVTFS6H888NLTAG N沟道
  • C语言 每日一题 11.9 day15
  • 酷开科技持续推动智能投影行业创新发展
  • 修正TiKnob的指示箭头显示问题
  • 搭建嵌入式GDB调试环境以及VSCode+gdbserver 图形化调试
  • IDEA中如何移除未使用的import
  • chrome 一些详细信息查找的地方
  • linux安装配置MongoDB并设置开机启动
  • React高阶组件(Higher-Order Components, HOCs)
  • threejs (二) 相机
  • 【嵌入式开发工具】STM32+Keil实现软件工程搭建与开发调试
  • Leo赠书活动-06期 【强化学习:原理与Python实战】文末送书
  • 5 Spring依赖注入源码
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 03Go 类型总结
  • 2017-08-04 前端日报
  • C++11: atomic 头文件
  • centos安装java运行环境jdk+tomcat
  • es6要点
  • Java小白进阶笔记(3)-初级面向对象
  • SpringBoot几种定时任务的实现方式
  • Vue.js源码(2):初探List Rendering
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 将 Measurements 和 Units 应用到物理学
  • 每天一个设计模式之命令模式
  • 实现简单的正则表达式引擎
  • 一些css基础学习笔记
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ###C语言程序设计-----C语言学习(3)#
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • $NOIp2018$劝退记
  • (20050108)又读《平凡的世界》
  • (2020)Java后端开发----(面试题和笔试题)
  • (C#)获取字符编码的类
  • (k8s中)docker netty OOM问题记录
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (分布式缓存)Redis持久化
  • (分布式缓存)Redis哨兵
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (四)c52学习之旅-流水LED灯
  • (转)Unity3DUnity3D在android下调试
  • (轉貼) UML中文FAQ (OO) (UML)
  • ... 是什么 ?... 有什么用处?
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CLR基本术语
  • .net 中viewstate的原理和使用
  • .Net的C#语言取月份数值对应的MonthName值
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken