在模块中使用另一个模块:导入与在路由中使用loadChildren
问题描述:
在我对Angular的探索中,我发现了两种可能的方式在另一个模块中使用一个模块。在模块中使用另一个模块:导入与在路由中使用loadChildren
(使用angular-express-starter project供参考)
-
方法1: 声明它的
imports
阵列英寸For example@NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, SharedModule, FormsModule ] })
-
方法2: 使用
loadChildren
路由。 For example:export const routes: Route[] = [ { path: '', pathMatch: 'full', redirectTo: 'weather'}, { loadChildren: 'app/dashboard/dashboard.module#DashboardModule', path: 'dashboard' }, { loadChildren: 'app/profile/profile.module#ProfileModule', path: 'profile' }, { loadChildren: 'app/weather/weather.module#WeatherModule', path: 'weather' } ];
什么是这两种方法之间的实际差别?
答
模块才会被载入欲了解更多信息,请阅读
什么是这两种方法之间的实际差别?
的最大区别在于,通过loadChildren
加载的模块将有自己的喷射器而从导入的模块提供者被合并成一个根注射器。这意味着您不能将延迟加载模块的提供者注入其他延迟加载的模块。
其他方面的差异:
- 你不能使用
loadChildren
如果你在相应的路线导航到
不使用路由通过loadChildren
加载
答
当您使用loadChildren
时,它被称为“延迟加载”,总的来说,它可以帮助我们减少启动时间。只有在用户导航到他们的路线时,才会加载延迟加载的模块。
有关“延迟加载”的详细信息:https://angular-2-training-book.rangle.io/handout/modules/lazy-loading-module.html
我们还可以通过loadChildren – yurzui