react 动态修改路由_React 动态路由

React 项目通过create-react-app 命令创建,版本为2.0.3.

封装一个高阶组件,用来实现将普通的组件转换成动态组件import React from \\\\\\\'react\\\\\\\'

const AsyncComponent = loadComponent => (

class AsyncComponent extends React.Component {

state = {

Component: null,

}

componentWillMount() {

if (this.hasLoadedComponent()) {

return;

}

loadComponent()

.then(module => module.default)

.then((Component) => {

this.setState({Component});

})

.catch((err) => {

console.error(`Cannot load component in `);

throw err;

});

}

hasLoadedComponent() {

return this.state.Component !== null;

}

render() {

const {Component} = this.state;

return (Component) ? : null;

}

}

);

export default AsyncComponent;

修改之前的路由配置import React from \\\"react\\\";

import {

Route

} from \\\'react-router-dom\\\'

import asyncComponent from \\\'./asyncComponent\\\'

//import Map from \\\"../pages/Map\\\";

const MapTest = asyncComponent(

() => import(/* webpackChunkName: \\\"map_test\\\" */\\\'../pages/Map\\\')

)

export default (

);

配置完成后从其他模块切换到map会发现请求了 map_test.trunk.js

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值