В настоящее время я следую рекомендованному структурированному модулю, изложенному в Angular ngModule docs .
Насколько я понимаю, общий модуль должен обычно содержать любые директивы, охрану, модели и другие вспомогательные функции, которые будут использоваться в приложении. Который затем большинство других модулей будет импортировать этот Общий модуль для реализации этой общей функциональности.
Большинство примеров, которые я видел, будут также импортировать все модули пользовательского интерфейса в общие модули. Так, например, если я использую Angular Material, я импортирую все общие модули пользовательского интерфейса здесь, т.е. MatInputModule, MatSelectModule, ...
Мой вопрос заключается в том, хочу ли я лениво загружать модули, чтобы уменьшить первоначальный размер пакета, и предполагая, что некоторые модули пользовательского интерфейса используются только в одном функциональном модуле. Будет ли тогда целесообразно импортировать только этот модуль пользовательского интерфейса в функциональный модуль, а не общий модуль.
Например. Если мой модуль аутентификации является единственным модулем, который использует MatCardModule, то лучше ли мне импортировать его только в модуль аутентификации, а не со всеми другими моими импортированными модулями MatModule в общем модуле?
Предполагая, что ответ - да - будет ли все еще иметь смысл, если MatCardModule используется в двух разных функциональных модулях (тогда вы импортируете его в два отдельных модуля)? Разве Angular справляется с этим - например, если модуль уже был загружен в один лениво загруженный модуль, он не будет загружаться снова для второго лениво загруженного модуля?
TLDR Лучше ли импортировать только те модули UIM, которые вам нужны, в ваши функциональные модули (даже если это означает, что вы будете импортировать один и тот же модуль UIM несколько раз) или лучше оставить все свои модули UIM импортируется в Общий модуль, а затем просто импортируется Общий модуль во все другие функциональные модули