Типы функциональных модулей
Что такое функциональные модули
Функциональные модули - это NgModules для организации кода.
Существует пять основных категорий функциональных модулей, которые, как правило, делятся на следующие группы:
- Доменные функциональные модули.
- Маршрутизированные функциональные модули.
- Модули маршрутизации.
- Сервисные функциональные модули.
- Функциональные модули виджетов.
Хотя в следующих рекомендациях описано использование каждого типа и их типичные характеристики, в реальных приложениях вы можете встретить гибриды.
Функциональный модуль | Методические рекомендации |
---|---|
Домен | Функциональные модули домена обеспечивают пользовательский опыт, посвященный определенной области приложения, например редактирование клиента или размещение заказа. Как правило, они имеют верхний компонент, который действует как корневая и закрытая функциональные возможности, поддерживая подчиненные подкомпоненты. Функциональные модули домена состоят в основном из объявлений. Только верхний компонент экспортируется. Функциональные модули домена редко имеют поставщиков. Когда они это делают, срок службы предоставляемых услуг должен совпадать с временем жизни модуля. Функциональные модули домена обычно импортируются ровно один раз большим функциональным модулем. Они могут быть импортированы корневым AppModule небольшого приложения, которому не хватает маршрутизации. |
Направлен | Маршрутизированные функциональные модули - это функциональные модули домена, главные компоненты которых являются целями маршрутов навигации маршрутизатора. Все лениво загруженные модули являются по определению маршрутизированными функциональными модулями. Маршрутизированные функциональные модули ничего не экспортируют, потому что их компоненты никогда не появляются в шаблоне внешнего компонента. Ленивый загруженный маршрутизируемый функциональный модуль не должен импортироваться никаким модулем. Это вызвало бы активную загрузку, побеждая цель ленивой загрузки. Это означает, что вы не увидите их упомянутыми в импорте AppModule. Загруженный маршрутизированный функциональный модуль должен быть импортирован другим модулем, чтобы компилятор узнал о его компонентах. У маршрутизируемых функциональных модулей редко есть поставщики по причинам, объясненным в разделе Ленивая загрузка функциональных модулей. Когда они это делают, срок службы предоставляемых услуг должен совпадать с временем жизни модуля. Не предоставляйте одноуровневые сервисы для всего приложения в маршрутизируемом модуле функций или в модуле, который импортирует маршрутизированный модуль. |
маршрутизация | Модуль маршрутизации обеспечивает конфигурацию маршрутизации для другого модуля и отделяет проблемы маршрутизации от его сопутствующего модуля. Модуль маршрутизации обычно выполняет следующие действия:
Модуль маршрутизации должен быть импортирован только его сопутствующим модулем |
обслуживание | Сервисные модули предоставляют сервисные услуги, такие как доступ к данным и обмен сообщениями. В идеале они состоят исключительно из провайдеров и не имеют деклараций. HttpClientModule от Angular является хорошим примером сервисного модуля. Корневой AppModule - единственный модуль, который должен импортировать служебные модули. |
Виджет | Модуль виджета делает компоненты, директивы и каналы доступными для внешних модулей. Многие сторонние библиотеки компонентов UI являются модулями виджетов. Модуль виджета должен состоять полностью из объявлений, большинство из которых экспортировано. Модуль виджета редко должен иметь провайдеров. Импортируйте модули виджетов в любой модуль, чьи шаблоны компонентов нуждаются в виджетах. |
В следующей таблице приведены основные характеристики каждой группы функциональных модулей.
Функциональный модуль | Объявления | Провайдеры | экспорт | Импортировано |
---|---|---|---|---|
Домен | да | редкий | Верхний компонент | Функция, AppModule |
Направлен | да | редкий | нет | Никто |
маршрутизация | нет | Да (охранники) | RouterModule | Особенность (для маршрутизации) |
обслуживание | нет | да | нет | AppModule |
Виджет | да | редкий | да | Особенность |
Предыдущий: Входные компоненты
Следующая: Angular Singleton Service
Новый контент: Composer: менеджер зависимостей для PHP , R программирования