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

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

<分区>

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

我的理解是...

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

最佳答案

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?

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

  • 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 - 除了设计简单之外,在 Angular2 中使用多个模块还有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41563723/

相关文章:

angular - 在路由参数更改时禁用组件重用

angular - 无法使动态模块导入与 Angular 5 中的 tsconfig 中的模块 esnext 一起使用

angular - 仅当第一个 Observable 返回 null 时如何调用第二个 Observable

angular - 从 Assets 中获取图像并将其转换为 base64

javascript - 用用户数据替换动态插入的关键字 Angular 5

javascript - 单击按钮调用服务功能不会更新 View

Angular路由器navigateByUrl()不调用ngOnInit()

angular - 如何在没有组件的情况下从 Angular 9+ 中的延迟加载模块动态注入(inject)服务?

node.js - 无法加载资源:net::ERR_CONNECTION_REFUSED:Nodejs

Angular2 router.navigate刷新页面