@sdgroup14

Есть ли другое решение для shearedModule?

Всем привет. пишу приложение, и столкнулся с такой неприятной особенностью. Есть много lazy модулей(страниц), в которые я импортирую один и тот же компонент, соответственно я получаю ошибку что нужно сделать sharedModule. Но получается так, что к примеру есть 5 страниц, и есть sharedModule, и между 3 страницами шерятся 2 компонента а между 2 страницами 1 компонент, а между 5 модулями шерится еще 1 компонент. Я к тому веду что мне пришлось создавать куча shared модулей чтоб избежать ошибок, получается у меня на 1 компонент 1 shared модуль. Вообщем как-то так

3 lazy страницы
@NgModule({
  declarations: [],
  imports: [
    Shared1Module
  ]
})

export class Lazy1Module {
}

@NgModule({
  imports: [
     Shared2Module
  ]
})

export class Lazy2Module {
}

@NgModule({
  imports: [
    Shared2Module
  ],
})

export class Lazy3Module {
}


3 компонента

export class My1Component {
}

export class My2Component {
}

export class My3Component {
}


и 2 лейзи

@NgModule({
  declarations: [
     My1Component,
     My2Component
  ],
 exports: [My1Component, My2Component]
})

export class Shared1Module {
}

@NgModule({
  declarations: [
     My3Component
  ],
 exports: [My3Component]
})

export class Shared2Module {
}


Я не понимаю, действительно нет другого решения? Если да, то для чего это вообще нужно так делать? Просто проект вырос, до 100+ компонентов отдельных в которых есть еще мелкие компоненты и получается, я либо делаю отдельный shared для отдельного компонента, либо нужно выискивать связь всего проекта с этим компонентом и делать shared какойто общий. Вообщем уже 30 shared и это очень неудобно. Надеюсь вы меня поняли :). Подскажите плз по этому вопросу :)
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
1 компонент - 1 модуль, вполне нормальное решение. Конечно у них должно быть одно имя, а не "Shared2" и глупые компоненты тоже в этот модуль.

Частоиспользуемые уже можно собрать в Shared, как правило он один на проект или на раздел. Если в нем подгрузится несколько неиспользуемых в текущем лейзи модуле - ничего страшного.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы