关于前端:React-import按需异步加载asyncComponent

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')
});

评论

发表回复

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

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理