为了账号安全,请及时绑定邮箱和手机立即绑定

react异步加载组件,纯干货

标签:
React

    今天给大家分享一个react异步加载组件的方法:

import React, {Component} from "react";

import {Modal} from "antd";


const AsyncComponent = loadComponent => (

class AsyncComponent extends Component {

state = {

Component: null

}

componentDidMount() {

const me = this;

if(this.hasLodaedComponent()) return;

loadComponent()

.then(module => module.default)

.then(Component => {

me.setState({Component})

})

.catch(err => {

console.log(err);

Modal.info({

title: "系统提示",

content: "系统已更新,请刷新页面",

onOk: ()=>{

me.reloadSys()

}

})

})

}


hasLoadedComponent() this.state.Component !== null;

reloadSys = () => window.document.location.reload();


render(){

const Component = this.state.Component 

return Component ? <Component {...this.props}> : null

}

}

)


    使用

import AsyncComponent from "./AsyncComponent";


const User = AsyncComponent(

() => import(/* webpackChunckName: User */ "./User")

)


const R = () => {

<Switch>

<Route path="./user" component={User} />

</Switch>

}


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消