Angular-приложение строится вокруг модульной системы зависимостей,
управляемой через NgModule и механизм внедрения
зависимостей (Dependency Injection). Помимо стандартного пакета Angular,
используются внешние библиотеки, расширяющие функциональность
фреймворка.
@angular/core Содержит базовые сущности:
@Component, @Injectable)@angular/common Общие инструменты:
ngIf, ngFor)DatePipe, CurrencyPipe)@angular/platform-browser Адаптация Angular под браузер:
@angular/router Маршрутизация:
@angular/animations Интеграция анимационной системы:
RxJS является обязательной зависимостью Angular.
Ключевые сущности:
ObservableSubjectmap, switchMap,
mergeMap, debounceTime)Применение RxJS:
Angular тесно интегрирован с RxJS, особенно через
HttpClient и реактивные формы.
Zone.js отслеживает асинхронные операции и уведомляет Angular о необходимости запуска change detection.
Используется для:
Без Zone.js Angular теряет автоматическое отслеживание изменений.
Angular Material
Angular CDK
PrimeNG / NG-ZORRO / Nebular
Для сложных приложений используются дополнительные библиотеки:
NgRx
Akita
Встроенные модули:
FormsModuleReactiveFormsModuleДополнительные библиотеки:
ngx-mask — маски вводаngx-formly — динамические формыyup — схемы валидацииAngular использует иерархический DI-контейнер:
providers: [
{ provide: ApiService, useClass: ApiService }
]
Поддерживаются:
useClassuseValueuseFactoryuseExistingЭто позволяет:
Грамотный выбор и структурирование зависимостей формирует масштабируемую архитектуру и снижает связность компонентов.