react路由组件的lazyLoad

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

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

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

    javascript 复制代码
    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组件效果。

相关推荐
哆啦A梦15885 小时前
商城后台管理系统 03 登录布局
javascript·vue.js·elementui
曼巴UE55 小时前
UE FString, FName ,FText 三者转换,再次学习,官方文档理解
服务器·前端·javascript
selt7916 小时前
Redisson之RedissonLock源码完全解析
android·java·javascript
行走的陀螺仪6 小时前
高级前端 Input 公共组件设计方案(Vue3 + TypeScript)
前端·javascript·typescript·vue·组件设计方案
一颗不甘坠落的流星7 小时前
【Antd】基于 Upload 组件,导入Json文件并转换为Json数据
前端·javascript·json
LYFlied7 小时前
Vue2 与 Vue3 虚拟DOM更新原理深度解析
前端·javascript·vue.js·虚拟dom
Lucky_Turtle7 小时前
【Node】npm install报错npm error Cannot read properties of null (reading ‘matches‘)
前端·npm·node.js
小飞侠在吗7 小时前
vue shallowRef 与 shallowReacitive
前端·javascript·vue.js
惜分飞8 小时前
sql server 事务日志备份异常恢复案例---惜分飞
前端·数据库·php