Size: a a a

Angular - русскоговорящее сообщество

2019 October 28

E

Eugene in Angular - русскоговорящее сообщество
Артур Мудрик
ребята, чтобы сделать из сервисов синглтоны, мне не обязательно делать так:

export class SharedModule {

   static forRoot(): ModuleWithProviders {
       return {
           ngModule: SharedModule,
           providers: [
               LightboxService,
               ModalService,
               NotificationService,
               PopupService,
               SpinnerService,
               ToasterService,
           ]
       };
   }

}


и потом в AppModule делать вот так:

@NgModule({
   ...,
   imports: [
       ...,
       SharedModule,
       SharedModule.forRoot(),
       ...,
   ],
   ...,
})


а достаточно просто у сервисов указать providedIn: 'root'?

@Injectable({
 providedIn: 'root'
})
а по вопросу, да, достаточно providedIn: 'root'
источник

E

Eugene in Angular - русскоговорящее сообщество
Артур Мудрик
это да, но там скинуты наиболее часто применяемые компоненты и директивы. А так да, можно вообще каждый компонент сделать отдельным модулем и импортить точечно :)
точечно лучше, хоть и немного более муторно)
источник

С

Светлана in Angular - русскоговорящее сообщество
Владислав Жураковский
я бы это руцями делал)
Мне лень🙊 я думала, что-то упускаю, оказывается, просто нет
источник

ВЖ

Владислав Жураковский in Angular - русскоговорящее сообщество
Светлана
Мне лень🙊 я думала, что-то упускаю, оказывается, просто нет
ну раз в доке этого нет, придется писать самому, если не хочешь подключать доп. либу
источник

ВЖ

Владислав Жураковский in Angular - русскоговорящее сообщество
источник

С

Светлана in Angular - русскоговорящее сообщество
Владислав Жураковский
ну раз в доке этого нет, придется писать самому, если не хочешь подключать доп. либу
Ну да
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Хм. вроде раньше в доке было использование именованных роутер аутлетов, а сейчас что-то не могу найти
источник

СК

Саша Корбут in Angular - русскоговорящее сообщество
Anton Shvets
Хм. вроде раньше в доке было использование именованных роутер аутлетов, а сейчас что-то не могу найти
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
спасибо. чето в упор не видел
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Eugene
SharedModule вообще плохая практика, если у вас есть lazy loading. Что если некоторые из ваших lazy-модулей не будут нуждаться во всех зависимостях, которые предоставляет SharedModule?
Компонент А, юзается в модулях 1,2,3 Компонент Б в 1, 5 Компонент В в 6, 1 и 10 И что делать, дублировать на каждый модуль?
источник

E

Eugene in Angular - русскоговорящее сообщество
Igor Filippov
Компонент А, юзается в модулях 1,2,3 Компонент Б в 1, 5 Компонент В в 6, 1 и 10 И что делать, дублировать на каждый модуль?
обернуть в модуль и импортить где нужно.
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Eugene
обернуть в модуль и импортить где нужно.
Пробовал так, особого выигрыша не заметил по размерам. Может если на постоянке так делать, то был бы смысл. А вообще если один и тот же компонент через модуль импортируется в разные модули, ангуляр как это хендлит? Дублирует?
источник

E

Eugene in Angular - русскоговорящее сообщество
Igor Filippov
Пробовал так, особого выигрыша не заметил по размерам. Может если на постоянке так делать, то был бы смысл. А вообще если один и тот же компонент через модуль импортируется в разные модули, ангуляр как это хендлит? Дублирует?
в отдельный чанк уносит
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
То есть чанк Б модуля будет с этим модулем нашего компонента и чанк В модуля тоже
источник

E

Eugene in Angular - русскоговорящее сообщество
Igor Filippov
Пробовал так, особого выигрыша не заметил по размерам. Может если на постоянке так делать, то был бы смысл. А вообще если один и тот же компонент через модуль импортируется в разные модули, ангуляр как это хендлит? Дублирует?
лучше так, чем провайдить зависимости там где они не нужны
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Eugene
лучше так, чем провайдить зависимости там где они не нужны
Лениво для маленьких компонентов делать эти модули, но видимо иначе никак.
источник

E

Eugene in Angular - русскоговорящее сообщество
Igor Filippov
Лениво для маленьких компонентов делать эти модули, но видимо иначе никак.
есть такая штука, как schematics, можно сделать схематик, который создаст компонент, сразу же обернутый в модуль
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Eugene
есть такая штука, как schematics, можно сделать схематик, который создаст компонент, сразу же обернутый в модуль
Не в этом дело, их просто много.
источник

E

Eugene in Angular - русскоговорящее сообщество
Igor Filippov
Не в этом дело, их просто много.
тогда тем более велика вероятность, что куча зависимостей попадает в модули, где они не нужны
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Eugene
тогда тем более велика вероятность, что куча зависимостей попадает в модули, где они не нужны
Ну это и так ясно
источник