每个延迟加载的页面都是独立的模块。基本的延迟加载页面模块如下所示。
@NgModule({
declarations: [
TestPage,
],
imports: [
IonicPageModule.forChild(TestPage),
],
})
export class TestPageModule {}
这个
TestPage
已声明。进口已经
IonicPageModule.forChild()
它实际上返回一个
ngModule
进口的
IonicModule
. 从源头上说,
@NgModule({
imports: [IonicModule],
exports: [IonicModule]
})
export class IonicPageModule {
static forChild(page: any): ModuleWithProviders {
return {
ngModule: IonicPageModule,
providers: [
{ provide: <any>LAZY_LOADED_TOKEN, useValue: page },
{ provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: page, multi: true },
]
};
}
}
但我看不到每个包的IonicModel部分。为什么离子组件和指令是离子模块的一部分,而不是每个延迟加载的模块束的一部分?我们可以用自己的组件来避免代码重复吗?