美文网首页
react-router v4 代码分割/按需加载

react-router v4 代码分割/按需加载

作者: jiansheng | 来源:发表于2017-10-30 11:02 被阅读0次

    首先新建文件Bundle.js。

    // Bundle.js
    
    import React from 'react';
    
    export default class Bundle extends React.Component {
        constructor(props) {
            super(props);
            this.state = {
                mod: null
            };
        }
    
        componentWillMount() {
            this.load(this.props)
        }
    
        componentWillReceiveProps(nextProps) {
            if (nextProps.load !== this.props.load) {
                this.load(nextProps)
            }
        }
    
        load(props) {
            this.setState({
                mod: null
            });
            //注意这里,使用Promise对象; mod.default导出默认
            props.load().then((mod) => {
                this.setState({
                    mod: mod.default ? mod.default : mod
                });
            });
        }
    
        render() {
            return this.state.mod ? this.props.children(this.state.mod) : null;
        }
    }
    

    然后如下使用即可。

    11.png

    效果:
    刚开始在 / 路由,加载到的文件有

    22.png

    然后到 /todo-app 路由,加载的文件有

    33.png

    红色框中的 0.chunk.js 就是到 /todo-app 路由,按需加载到的文件。

    相关文章

      网友评论

          本文标题:react-router v4 代码分割/按需加载

          本文链接:https://www.haomeiwen.com/subject/ivhppxtx.html