Ну, я структурирую свой проект, следуя инфраструктуре:
- Функциональный модуль.
- Основной модуль.
- Общий модуль.
Но есть кое-что, что у меня все еще недостаточно ясно.
Насколько я знаю, HttpClientModule
должен быть в CoreModule
, потому что ... он предоставляет сервис HttpClient
для отправки HTTP-запросов на сервер.
Теперь массив imports
позволяет модулю Angular использовать функции, предоставляемые в других модулях, а массив exports
позволяет модулю Angular раскрывать некоторые из его функций.
У меня есть это в моем CoreModule
:
@NgModule({
imports: [
BrowserAnimationsModule,
HttpClientModule,
RouterModule.forRoot(routes, {
enableTracing: true
})
],
exports: [
RouterModule
]
})
export class CoreModule {
}
Теперь, поскольку мой CoreModule
импортирован в мой AppModule
, разве не должны экспортироваться также HttpClientModule
и BrowserAnimationsModule
? Так же, как RouterModule
.
Я вижу CoreModule
и SharedModule
как какой-то мост.
SharedModule
имеет больше смысла для меня:
@NgModule({
imports: [
MatButtonModule
],
exports: [
MatButtonModule
]
})
export class SharedModule {
}
SharedModule
импортирует MatButtonModule
, а затем экспортирует его, чтобы другие модули могли использовать его.
Не должно ли CoreModule
быть таким же? Потому что приложение работает нормально; однако я нахожусь в режиме разработки.
Надеюсь, я был достаточно ясен, и кто-то может помочь мне избавиться от этого сомнения.