react route 4 按需加载

使用react-router4的按需加载,按照官方文档的设置login 和主页面进行分离,登录login 的时候我看了下,bundle.js文件也被加载了,怎么设置在直接进入分离出来的模块的时候,不去加载bundle文件

route.js

const Login = (props) => (
    <Bundle load={() => import('./components/login')}>
        {(Login) => <Login {...props} />}
    </Bundle>
)

const Admin = (props) => {
    return (
        <Bundle load={() => import('./components/admin')}>
            {(Admin) => <Admin {...props} />}
        </Bundle>
    )
}
class App extends Component {
    render() {
        return (
            <Switch>
                <Route path="/nest/app" component={Admin} />
                <Route path="/nest/login" exact component={Login} />

                {/* 重定向路由 */}
                {<Redirect from="/nest" to="/nest/app" />}
            </Switch>
        );
    }
}

浏览器加载信息

阅读 2.6k
2 个回答

好像是require.ensure吧

bundle是所有页面的通用js代码,不能不加载的,比如react.js库,你写的App class都是打包到bundle.js中的。按需加载,指的是按需加载不同route对应的代码,但bundle.js在任何一个route下都是需要的,当然是会被加载的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题