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

时间:2017-01-10 07:51:31

标签: angular typescript angular2-routing angular-module angular2-modules

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

我的理解是......

  • 会增加服务器和客户端之间的请求数量吗?
  • 这将增加代码的复杂性。(因为你需要采取
  • 导入和导出模块并特别注意路由)

2 个答案:

答案 0 :(得分:8)

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

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

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

<强>更新

虽然延迟加载并不会减少加载时间,但是在开始页面上需要一切都是恕我直言,而不是几乎100%的Angular2应用程序中的情况,它减少了初始加载的时间并延迟了加载时间到实际需要模块的时候。 Angular还支持预加载功能,可以在需要之前加载延迟加载的模块,但仍然无法在初始加载时加载它们。

  •   

    它会增加服务器和客户端之间的请求数量吗?

请求数量会更高,但第一个请求加载的数据量会更少。主要思想是缩短用户获得第一个屏幕的时间。如果一个应用程序包含一些使用频繁而其他部分非常少的部分,那么在实际使用之前不加载很少使用的部分通常是个好主意 - 这意味着&#34;懒惰&#34;或者&#34;按需提供&#34; - 仅在实际需要时。

  •   

    这会增加代码的复杂性。(因为你需要照顾

如果您希望充分利用延迟加载,则需要考虑您的体系结构。这并不意味着代码需要变得更加复杂。您只需要决定将组件,指令和服务放入哪个模块。

  •   

    导入和导出模块,并特别注意路由)

我在这里看不到太多区别,因为你应该将你的应用程序分成不同的模块(例如每个功能),即使它们没有延迟加载。

答案 1 :(得分:2)

我不认为它的角度具体问题。如果你谷歌为他们使用模块,你有很多答案,例如看看这里:modules

现在简短回答你的问题:

  • 无助于缩短装载时间
  • 会增加请求数量
  • 它实际上有助于通过解耦非相关功能而不必污染全局命名空间来降低代码的复杂性