首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应解耦模块

反应解耦模块
EN

Stack Overflow用户
提问于 2016-11-15 08:36:27
回答 2查看 569关注 0票数 1

我想要解耦我的应用程序模块,以便每个模块可以单独开发。我使用React,Redux和React路由器,我认为路由位置是这里的一个主要角色。我还想保留应用程序的SPA (无页面重新加载)功能。我应该有不同的html文件吗?我可以单独捆绑我的源JS文件吗?

我的想法是广泛的,所以我想缩小到最好的解决方案。

使用上面的当前结构,我担心我的单个源JS文件将有一个巨大的文件大小。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-15 11:00:00

处理大型包文件的一种可能方法是将webpack用于码分裂应用程序:

https://gist.github.com/sokra/27b24881210b56bbaff7#code-splitting-with-es6

kyt-启动器-通用存储库有一个示例:

代码语言:javascript
复制
const importHome = (nextState, cb) => {
  System.import('../components/Home')
    .then(module => cb(null, module.default))
    .catch((e) => { throw e; });
};

...

const routes = (
  <Route path="/" component={App}>
    <IndexRoute getComponent={importHome} />
    ...
  </Route>
);

使用webpack 2,而不是正常导入模块,System.import将让webpack知道为该模块及其依赖项创建一个单独的块。Webpack 1还使用require.ensure进行代码拆分。

更多阅读:

http://moduscreate.com/code-splitting-for-react-router-with-es6-imports/

https://medium.com/@puppybits/webpack-code-splitting-by-routes-92f96cf733f2#.v1mxmc3ty

http://jonathancreamer.com/advanced-webpack-part-2-code-splitting/

http://blog.netgusto.com/asynchronous-reactjs-component-loading-with-webpack/

票数 1
EN

Stack Overflow用户

发布于 2016-11-22 17:09:49

非常同意@DTing,使用webpack是你在这里的最佳选择。Webpack包括一个优化器,它了解如何将n个模块拆分成m个包。它在主包旁边为每个块生成单独的js文件,并在调用require时加载它们。

很少有更多的资源能帮助我理解这里的基本面。

( A) automatic-code-splitting-for-react-router-w-es6-imports

( B) Webpack语言中建立代码分裂与反应路由器的探讨

( C)关于为什么Vector.im web应用程序的JS包太大的原因,以及如何通过代码分割和应用程序结构的改变来改进JS包。一个改进包大小的方法的好例子

( D) 从webpack开始-2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40605273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档