返回顶部
首页 > 资讯 > 前端开发 > html >react-router4怎么实现按需加载
  • 853
分享到

react-router4怎么实现按需加载

2024-04-02 19:04:59 853人浏览 八月长安
摘要

这篇文章给大家分享的是有关React-router4怎么实现按需加载的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一:创建asyncComponent.jsimport 

这篇文章给大家分享的是有关React-router4怎么实现按需加载的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一:创建asyncComponent.js

import React, { Component } from "react";

export default function asyncComponent(importComponent) {
 class AsyncComponent extends Component {
 constructor(props) {
  super(props);

  this.state = {
  component: null
  };
 }

 async componentDidMount() {
  if(this.hasLoadedComponent()){
   return;
  }
  const { default: component } = await importComponent();
  this.setState({
  component: component
  });
 }

 hasLoadedComponent() {
  return this.state.component !== null;
 }
 
 render() {
  const C = this.state.component;

  return C ? <C {...this.props} /> : null;
 }
 }

 return AsyncComponent;
}

二:在引入asyncComponent.js,并导入需要按需加载的模块

 import asyncComponent from "utils/asyncComponent"

 const Home = asyncComponent(() => import("./home"))
 const About = asyncComponent(() => import("./about"))

二:render部分

 const routes = () => (
 <BrowserRouter>
  <Switch>
   <Route exact path="/" component={Home} />
   <Route exact path="/about" component={About} />
   <Redirect to="/" />
  </Switch>
 </BrowserRouter>
)

三:预览效果

react-router4怎么实现按需加载

可以看到有一个警告,内容是

Warning: Can't perfORM a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method

这个警告其实是在组件卸载的时候执行了setState,虽然这个警告并不影响正常使用,但是看着总是不爽,所以我们要在组件卸载的时候结束setState,如下:

componentWillUnmount(){
 this.setState = (state,callback)=>{
  return
  }
}

四:完整版asyncComponent.js

import React, { Component } from "react";

export default function asyncComponent(importComponent) {
 class AsyncComponent extends Component {
 constructor(props) {
  super(props);

  this.state = {
  component: null
  };
 }

 async componentDidMount() {
  if(this.hasLoadedComponent()){
   return;
  }
  const { default: component } = await importComponent();
  this.setState({
  component: component
  });
 }

 hasLoadedComponent() {
  return this.state.component !== null;
 }
 componentWillUnmount(){
  this.setState = (state,callback)=>{
  return
  }
 }

 render() {
  const C = this.state.component;

  return C ? <C {...this.props} /> : null;
 }
 }

 return AsyncComponent;
}

五: webpack部分配置需要配置chunkFilename

eturn {
 output: {
  path: path.resolve(CWD, config.build),
  publicPath: config.static[process.env.MODE],
  chunkFilename: 'js/[name]-[chunkhash:8].js',
  filename: 'js/[name].js',
 },

感谢各位的阅读!关于“react-router4怎么实现按需加载”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: react-router4怎么实现按需加载

本文链接: https://lsjlt.com/news/79259.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • react-router4怎么实现按需加载
    这篇文章给大家分享的是有关react-router4怎么实现按需加载的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一:创建asyncComponent.jsimport ...
    99+
    2024-04-02
  • React-router4如何按需加载
    这篇文章主要介绍了React-router4如何按需加载,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Reac...
    99+
    2024-04-02
  • react 怎么实现按需加载
    本教程操作环境:Windows10系统、react18版、Dell G3电脑。react 怎么实现按需加载?react实现按需加载的3种方法1.精确加载组件import Button from 'antd/lib/button...
    99+
    2023-05-14
    React
  • react如何实现按需加载
    今天小编给大家分享一下react如何实现按需加载的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。react实现按需加载的方法:...
    99+
    2023-07-04
  • Vue中怎么实现按需加载
    本篇文章给大家分享的是有关Vue中怎么实现按需加载,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。概念(懒加载)当打包构建应用时,JavaScr...
    99+
    2024-04-02
  • vue中的按需加载怎么实现
    这篇“vue中的按需加载怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue中的按...
    99+
    2024-04-02
  • 怎么使用AJAX实现按需加载
    小编给大家分享一下怎么使用AJAX实现按需加载,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!按需加载的优势:在实际调查中发现,很多的网民在游览网站时具有明确的指向...
    99+
    2023-06-08
  • polyfills怎么按需加载
    本篇内容主要讲解“polyfills怎么按需加载”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“polyfills怎么按需加载”吧!火枪时代webpack出来之后,效率提高几倍,但是有一个问题就是...
    99+
    2023-07-05
  • React-router中结合webpack实现按需加载的示例分析
    这篇文章主要为大家展示了“React-router中结合webpack实现按需加载的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“React-route...
    99+
    2024-04-02
  • 怎么在php中利用Composer实现按需加载
    怎么在php中利用Composer实现按需加载?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。php是什么语言php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:H...
    99+
    2023-06-14
  • react中路由和按需加载的问题
    目录react路由和按需加载问题1 基本的路由设置2 如何完成路由的菜单部分3 如何将每个路由的js文件分开输出4 react-router按需加载配置5 最后效果react路由的基...
    99+
    2022-11-13
    react中路由 react按需加载 路由和按需加载
  • requirejs如何实现按需加载angularjs文件
    小编给大家分享一下requirejs如何实现按需加载angularjs文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!项目的主...
    99+
    2024-04-02
  • 如何用Vue代码实现按需加载
    本篇内容主要讲解“如何用Vue代码实现按需加载”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用Vue代码实现按需加载”吧!概念(懒加载)当打包构建应用时,JavaScript包会变得非常大,...
    99+
    2023-07-04
  • create-react-app使用antd按需加载的样式无效怎么办
    这篇文章将为大家详细讲解有关create-react-app使用antd按需加载的样式无效怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。官网给出的按需加载解决方案,...
    99+
    2024-04-02
  • Vue3怎么使用glup打包组件库并实现按需加载
    这篇文章主要介绍“Vue3怎么使用glup打包组件库并实现按需加载”,在日常操作中,相信很多人在Vue3怎么使用glup打包组件库并实现按需加载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3怎么使用g...
    99+
    2023-07-05
  • 在create-react-app中如何使用less与antd按需加载
    这篇文章将为大家详细讲解有关在create-react-app中如何使用less与antd按需加载,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用antd按需加载使用r...
    99+
    2024-04-02
  • 原生React怎么实现懒加载列表
    这篇文章主要介绍了原生React怎么实现懒加载列表的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇原生React怎么实现懒加载列表文章都会有所收获,下面我们一起来看看吧。应用场景懒加载列表或叫做无限滚动列表,也是...
    99+
    2023-07-05
  • 怎么实现点击按钮后实现CSS加载效果
    小编给大家分享一下怎么实现点击按钮后实现CSS加载效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!由于自己公司产品里头,有个按钮在点击之后,会有一两秒的等待时间(寄认证信),因此为了避免点击后一两秒的加载时间空窗,就做个...
    99+
    2023-06-08
  • react 怎么实现按条件搜索
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react 怎么实现按条件搜索?react design pro 实现多条件进行查询数据一、描述: 对于后台管理系统,在编写业务界面,多条件...
    99+
    2023-05-14
    搜索 React
  • babel7按需加载polyfill的方法是什么
    本篇内容主要讲解“babel7按需加载polyfill的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“babel7按需加载polyfill的方法是什么”吧!babel7babel7发布...
    99+
    2023-07-05
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作