Часто используемые модули¶
28.02.2022
В Angular-приложении должен быть хотя бы один модуль, который служит корневым. По мере добавления функций в приложение их можно добавлять в модули. Ниже перечислены часто используемые модули Angular с примерами некоторых содержащихся в них функций:
NgModule | Импорт из | Зачем вы его используете |
---|---|---|
BrowserModule | @angular/platform-browser | Для запуска вашего приложения в браузере. |
CommonModule | @angular/common | Для использования NgIf и NgFor . |
FormsModule | @angular/forms | Для создания форм, управляемых шаблонами (включает NgModel ). |
ReactiveFormsModule | @angular/forms | Для создания реактивных форм. |
RouterModule | @angular/router | Для использования RouterLink , .forRoot() и .forChild() . |
HttpClientModule | @angular/common/http | Для взаимодействия с сервером по протоколу HTTP. |
Импортирование модулей¶
Когда вы используете эти модули Angular, импортируйте их в AppModule
или, в зависимости от ситуации, в ваш функциональный модуль и перечислите их в массиве @NgModule
imports
. Например, в базовом приложении, сгенерированном с помощью Angular CLI, BrowserModule
является первым импортом в верхней части AppModule
, app.module.ts
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Импорты в верхней части массива — это операторы импорта JavaScript, а массив imports
внутри @NgModule
специфичен для Angular. Подробнее о различиях см. в JavaScript Modules vs. NgModules.
BrowserModule
и CommonModule
¶
BrowserModule
импортирует CommonModule
, который предоставляет множество общих директив, таких как ngIf
и ngFor
. Кроме того, BrowserModule
реэкспортирует CommonModule
, делая все его директивы доступными для любого модуля, импортирующего BrowserModule
.
Для приложений, работающих в браузере, импортируйте BrowserModule
в корневой AppModule
, поскольку он предоставляет сервисы, необходимые для запуска и работы браузерного приложения. Провайдеры BrowserModule
предназначены для всего приложения, поэтому он должен находиться только в корневом модуле, а не в функциональных модулях. Функциональным модулям нужны только общие директивы в CommonModule
; им не нужно переустанавливать общеприкладные провайдеры.
Если вы импортируете BrowserModule
в функциональный модуль с ленивой загрузкой, Angular вернет ошибку и предложит использовать вместо него CommonModule
.
Подробнее о NgModules¶
Возможно, вас также заинтересует следующее: