react路由懒加载_vue-router实现路由懒加载

react路由懒加载_vue-router实现路由懒加载路由懒加载是什么意思?在开发中,我们打开开发者工具,会发现我们刚刚打开就会去加载所有页面.路由懒加载就是只加载你当前点击的那个模块按需去加载路由对应的资源,可以提高加载速度(一个页面加载过后再次访问不会重复加载)实现原理:将路由相关的组件,不再直接导入了,而是改写成异步组件的写法,只有当函数被调用的时候,才去加载对应的组件内容方法一:重写首先,新建一个asynccComponent.js,作为公共jsimport{ComponentasReactComponet}fr

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

路由懒加载是什么意思?
在开发中 , 我们打开开发者工具, 会发现我们刚刚打开就会去加载所有页面.

路由懒加载就是只加载你当前点击的那个模块

按需去加载路由对应的资源, 可以提高加载速度 (一个页面加载过后再次访问不会重复加载)

实现原理:将路由相关的组件,不再直接导入了,而是改写成异步组件的写法,只有当函数被调用的时候,才去加载对应的组件内容

方法一: 重写

首先, 新建一个asynccComponent.js , 作为公共js

import {Component as ReactComponet} from 'react'
import React from "react";

export default function asyncComponent(getComponent) {

  return class AsyncComponent extends ReactComponet {

    state = {Component: null}

    componentDidMount() {
      if (!this.state.Component) {
        getComponent().then(Component => {
          this.setState({Component})
        })
      }
    }

    render() {
      const {Component} = this.state
      if (Component) {
        return <Component {...this.props} />
      }
      return null
    }
  }
}

然后写一个async-page.js 引入需要按需加载的页面

import asyncComponent from './async-component'

export default asyncComponent(async () => {
  try {
    const module = await import('./b')
    return module.default
  } catch (e) {
    console.log(e);
  }
  return null
})

在index.js中

import React from 'react'
import { NavLink, Route } from 'react-router-dom'

import A from './async-page-a'
import B from './async-page-b'

export default class Lazy extends React.Component {
  render () {
    return (
      <div>
        <div>
          <NavLink to="/a">A啦啦</NavLink>
          <hr />
          <NavLink to="/b">B啦啦</NavLink>
        </div>
        <div>
          <Route path="/a" component={A} />
          <Route path="/b" component={B} />
        </div>
      </div>
    )
  }
}
方法二: lazy
  • 1.通过React的lazy函数配合import()函数动态加载路由组件 ===> 路由组件代码会被分开打包
    const A = lazy(() => import('./a'))
  • 2.通过指定在加载得到路由打包文件前显示一个自定义loading界面
<Suspense fallback={<h1>loading.....</h1>}>
  <Switch>
     <Route path="/a" component={A} />
     <Route path="/b" component={B} />
     <Redirect to="/a"/>
   </Switch>
 </Suspense>

Redirect : 匹配不上所有的路由 就匹配Redirect 里的路由
Switch: 通常情况下,path和component是一一对应的关系。
Switch可以提高路由匹配效率(单一匹配)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185056.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • latex怎样绘制表格_LaTeX排版

    latex怎样绘制表格_LaTeX排版latex在线生成表格的网站:http://www.tablesgenerator.com/latex_tables这个网站可以通过三种方式来生成latex表格代码:1、自己设置表格;2、直接导入csv表格;3、直接复制表格内容1、自己设置表格点击File,选择newtables,可以设置需要的行列数2、点击importcsvfile,可以直接导入3、 点击…

    2022年8月11日
    14
  • RabbitMQ基础介绍与在java中使用-入门「建议收藏」

    RabbitMQ基础介绍与在java中使用-入门「建议收藏」前言:MQ做应用解耦,流量削峰这些是常识,RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库常用的主流的MQ有四个ActiveMQ:Apache下的一个子项目。使用Java完全支持JMS1.1和J2EE1.4规范的JMSProvider实现,少量代码就可以高效地实现高级应用场景。可插拔的传输协议支持,比如:

    2022年10月3日
    0
  • STM32驱动ST7701S芯片(vⅰV0手机换屏价)

    1、配置GPIO口voidLCD_GPIO_Config(void){/*定义一个GPIO_InitTypeDef类型的结构体*/GPIO_InitTypeDefGPIO_InitStructure;/*????IO??*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE…

    2022年4月11日
    358
  • fpga编程语言VHDL_quartus模块

    fpga编程语言VHDL_quartus模块(72)FPGA模块调用(VHDL调用Verilog)1.1目录1)目录2)FPGA简介3)VerilogHDL简介4)FPGA模块调用(VHDL调用Verilog)5)结语1.2FPGA简介FPGA(FieldProgrammableGateArray)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA设计不是简单的

    2022年9月14日
    0
  • struts2 FilterDispatcher StrutsPrepareAndExecuteFilter[通俗易懂]

    struts2 FilterDispatcher StrutsPrepareAndExecuteFilter[通俗易懂]StrutsPrepareAndExecuteFilter与FilterDispatcher的区别org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterorg.apache.struts2.dispatcher.FilterDispatcherFilterDispatcher是早期struts2的过

    2022年8月16日
    3
  • Git2.21下载安装及使用教程

    Git2.21下载安装及使用教程Git2.21下载安装及使用教程Git下载安装教程下载Git下载地址:https://git-scm.com/downloads安装步骤1.选择组件,全部勾选,点击next2.选择git使用的默认编辑器3.选择git使用的默认编辑器UseGitfromGitBashonly(安全)只在GitBash中使用Git命令行工具Gitfromthecomm…

    2022年5月13日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号