反应 - 样板中的代码分裂和异步代码加载

时间:2017-06-09 15:31:04

标签: reactjs react-router react-router-redux react-boilerplate

我开始在我的项目中使用react-boilerplate,我试图找出路由在那里的工作原理。你能解释一下example in docsexample in app吗?

  • 为什么getComponent()相对于简单的react-router路由定义<Route path='somepath' component={SomeContainer} />而言功能如此之大?
  • 我们为什么要拨打injectReducersinjectSagas

谢谢!

path: '/posts/:slug',
name: 'post',
getComponent(nextState, cb) {
 const importModules = Promise.all([
   import('containers/Post/reducer'),
   import('containers/Post/sagas'),
   import('containers/Post'),
 ]);

 const renderRoute = loadModule(cb);

 importModules.then(([reducer, sagas, component]) => {
   injectReducer('post', reducer.default);
   injectSagas(sagas.default);
   renderRoute(component);
 });

 importModules.catch(errorLoading);
},

1 个答案:

答案 0 :(得分:1)

injectReducerinjectSagas用于代码拆分。代码说“当这条路线被调用时,加载这些减速器和传奇”。 Webpack查看它并相应地将代码拆分为不同的文件。

如果它是一个小应用程序不是真的必要,但如果它是巨大的,代码分割可能有助于保持初始加载时间。