Модули¶
Angular модуль — это класс с декоратором @NgModule(), который служит изолирующей логической объединяющей структурой для компонентов, директив, фильтров и сервисов. Все перечисленные сущности определяются и конфигурируются с помощью @NgModule().
Angular приложение имеет модульную архитектуру и состоит, по крайней мере, из одного главного, или корневого, модуля. Все остальные относятся к второстепенным.
Сама библиотека @angular также модульная:
Ключевая роль при создании Angular модуля у декоратора @NgModule(), принимающего конфигурационный объект со свойствами:
imports— массив, где указывается список импортируемых второстепенных модулей;exports— массив компонентов, директив и фильтров, которыми пользуются другие модули, если они импортируют текущий;declarations— массив компонентов, директив и фильтров;entryComponents— массив создаваемых динамически компонентов;bootstrap— массив, в котором указывается компонент для загрузки;providers— массив сервисов.
По назначению модули можно классифицировать следующим образом:
- корневой;
- функциональный;
- маршрутизации;
- для поставки сервисов.
Корневой модуль — главный в приложении. Именно он загружается первым и импортирует в себя все второстепенные модули, которые могут импортировать в себя другие второстепенные модули.
Только корневой модуль может определять свойство bootstrap и импортировать BrowserModule.
1 2 3 4 5 6 7 8 9 | |
Функциональный Angular модуль реализует логически связанную совокупность компонентов, директив или фильтров (например, модули библиотеки @angular/material).
Практически всегда для модулей этого типа определяется свойство exports.
1 2 3 4 5 6 7 8 9 10 11 | |
Модуль маршрутизации нужен для определения иерархии маршрутов.
Angular модуль для поставки сервисов создается с использованием статического метода forRoot().
CoreModule и SharedModule¶
CoreModule — общепринятое название для модуля, используемого исключительно для поставки сервисов. Он не содержит в себе компонентов, директив и фильтров.
core.module.ts
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
SharedModule — общепринятое название для Angular модуля, служащим единым хранилищем для компонентов, директив и фильтров, которыми пользуются другие модули.
shared.module.ts
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
1 2 3 4 5 6 7 | |