我正在开发一个项目,我需要将我的应用程序划分为不同的模块。我想创建一个导入功能模块的核心模块,然后让其他模块使用该核心模块来访问这些功能。问题是核心模块是在appModule中导入的,但我不能在其他模块中使用它
import { NgModule } from '@angular/core';
import { MaterialModule } from 'src/app/material.module';
import { TranslateModule } from '@ngx-translate/core';
@NgModule({
imports: [TheModuleToUse],
exports: [TheModuleToUse]
})
export class CoreModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CourseRoutingModule } from './Course-routing.module';
import { MaterialModule } from 'src/app/TheModuleToUse';
@NgModule({
declarations: [CourseRoutingModule.components],
imports: [CommonModule, DeveloperRoutingModule, TheModuleToUse]
})
export class CourseModule {}
现在在开发者模块中我不应该导入 TheModuleToUse 因为我已经将其导入到核心模块中并且核心模块已导入到 app.module.Ts 中
模块是一个单独的单元,您可以从中导出数据,但不能指望模块读取父模块的内容。
因此
CourseModule
必须有自己的 CoreModule
导入,因为 CoreModule
的导入对 CourseModule
不可见,即使您在 AppModule
上导入它
当您在多个其他模块之间共享一个模块时,提取仅发生一次,因此如果模块被加载,它会被重用,因此不存在一次又一次提取同一模块的开销!