基于 Webpack 2 的 React Router 懒加载路由配置
前文提及,在 Webpack 1 中主要是由
而 React Router 路由的懒加载实际上分为动态路由与与懒加载两步,典型的所谓动态路由配置如下: /** * <Route path="/" component={Core}> * <IndexRoute component={Home}/> * <Route path="about" component={About}/> * <Route path="users" component={Users}> * <Route path="*" component={Home}/> * </Route> */ export default { path: '/',component: Core,indexRoute: { getComponent(location,cb) { ... },},childRoutes: [ { path: 'about',getComponent(location,cb) { ... },{ path: 'users',cb) { ... },{ path: '*',],}; 我们可以在 const getComponentLazily = (importor,name = 'default') => { return (location,cb) => { importor.then((module) => { //如果是默认模块,则是 module.default cb(null,module[name]); }) .catch((err) => { console.error(`动态路由加载失败:${err}`) }); } }; 我们也可以将同步路由与异步路由混合使用: <Route path="/" history={browserHistory} component={Core}> <IndexRoute component={Home}/> <Route path="about" component={withRouter(About)}/> <Route path="users" getComponent={getComponentLazily(System.import('./component/users'),'Users')}/> <Route path="*" component={withRouter(Home)}/> </Route> 这样最后打包生成的包体会发现有一个独立的 Chunk: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |