除了设计简单之外,在 Angular2 中使用多个模块还有什么好处?

what is the benefit of using multiple modules in Angular2 apart from simplicity in designing?

这是否有助于减少加载时间?(比如只将当前模块加载到客户端设备?)

我的理解是...

Angular 支持模块延迟加载。通过这种方式,您可以将应用程序拆分为仅按需加载的部分。

{
  path: 'admin',
  loadChildren: 'app/admin/admin.module#AdminModule',
},

另见 https://angular.io/docs/ts/latest/guide/router.html#!#asynchronous-routing

更新

虽然在开始页面需要所有内容时延迟加载不会减少加载时间(恕我直言,几乎 100% 的 Angular2 应用程序都不是这种情况,但它减少了初始加载的时间并将加载时间延迟到实际需要模块的时间。 Angular 还支持预加载功能以在需要之前加载延迟加载的模块,但仍然不会在初始加载时加载它们。

  • It will increase the number of request between server and client?

请求的数量会更多,但是第一个请求加载的数据量会更少。主要想法是减少用户获得第一个屏幕呈现之前的时间。如果一个应用程序由一些部分被大量使用而另一些部分很少使用,那么通常最好不要加载很少使用的部分,直到它们被实际使用——这意味着 "lazy" 或 "on demand" - 只有当实际需要。

  • It will increase the complexity of your code.(Since you need to take care of

如果您想获得延迟加载的全部好处,您需要考虑您的架构。这并不意味着代码需要变得更复杂。您只需要决定将组件、指令和服务放入哪个模块。

  • importing and exporting modules and take special care in routing too)

我看不出这里有什么不同,因为无论如何你都应该将你的应用程序分成不同的模块(例如每个功能),即使它们不是延迟加载的。

我不认为它 angular 具体问题。有很多答案为什么你应该使用模块,如果你 google 为他们,例如看看这里:modules

现在简短回答您的问题:

  • 这对减少加载时间没有帮助
  • 它会增加请求的数量
  • 通过解耦不相关的功能并且不必污染全局名称空间,它实际上有助于降低代码的复杂性