Лучшие практики создания общего модуля ng
Я хочу, наконец, добавить в приложение различные модули NgModules. В настоящее время у нас есть один большой, в котором есть все, и для нашей новой функции / страницы мы хотим создать новый модуль. Однако возникает вопрос, учитывая общие модули, компоненты, иконки fontawesome. Как лучше всего ими поделиться?
Вот отрывок из текущего
@NgModule({
declarations: [
AppComponent,
... a lot more components here
],
imports: [
BrowserModule,
.. more imports here
],
providers: (
[
TitleCasePipe,
TranslocoDatePipe,
]
)
bootstrap: [AppComponent],
})
export class AppModule {
constructor(library: FaIconLibrary) {
// FONTAWESOME_ICONS is a const array with long list of icons
FONTAWESOME_ICONS.forEach((icon) => {
library.addIcons(icon)
})
}
}
Я знаю, это уродливо. Теперь с новым модулем мне нужно экспортировать общие компоненты, модули в a, чтобы я мог импортировать их как в, так и в. Вот я попытался
@NgModule({
declarations: [
DomainComponent,
.. more components
],
imports: [
ApiModule,
.. more modules
],
providers: (
[
TitleCasePipe,
TranslocoDatePipe,
]
)
exports: [
.. all the shared components and modules
],
})
export class SharedModule {
constructor(library: FaIconLibrary) {
FONTAWESOME_ICONS.forEach((icon) => {
library.addIcons(icon)
})
}
}
Вот это
AppModule
после использования.
@NgModule({
declarations: [
.. other app components
],
imports: [SharedModule, VendorsModule, BrowserModule],
bootstrap: [AppComponent],
})
export class AppModule {}
Вот это
VendorsModule
@NgModule({
declarations: [VendorsComponent],
imports: [SharedModule],
exports: [VendorsComponent],
})
export class VendorsModule {}
Меня беспокоит, эффективно ли импортировать в каждый новый введенный модуль (потому что мне явно понадобятся некоторые общие компоненты, значки), даже если
SharedModule
включает компоненты и значки с отличным шрифтом, которые могут не иметь отношения к этому модулю.
Я просмотрел несколько статей об общих модулях, но они, кажется, представляют только базовый вариант использования.
Это скорее побочный вопрос, я не уверен, что это лучший способ импортировать иконки с потрясающим шрифтом (не бесплатно) в приложение.