import()
办法返回的是一个Promise
。asyncComponent
是一个返回组件的函数
const asyncComponent = (importComponent) => {
return class extends Component {
constructor(){
super();
this.state = {
component: null
}
}
componentDidMount() {
importComponent().then(cmp => {
this.setState({
component: cmp.default
});
});
}
render() {
const C = this.state.component;
return C ? <C {...this.props} /> : null
}
}
}
应用:
const Home = AsyncCompoent(() => import('./Home/index/js'));
const City = AsyncCompoent(() => {
impirt('./city/index.js')
});
发表回复