Angular — это фреймворк javascript, который используется для создания одностраничного веб-приложения. Это означает, что одно приложение имеет одну страницу для отображения всей информации в intex.html.

Угловая архитектура

Строительные блоки Angular Architecture:

  • Модуль
  • Компонент
  • Шаблон
  • Метаданные
  • Привязка данных
  • Услуги
  • Директивы
  • Внедрение зависимости

Модуль

Модули или NgModules в архитектуре angular — это механизм для создания компонентов, директив, сервисов и пайпов. Это помогает в создании приложений в сочетании с другими модулями.

@NgModule принимает объект метаданных, который обычно описывает способ компиляции шаблона компонента и создания инжектора во время выполнения.

Еще одна аналогия понимания модулей — это классы. В классах у нас есть публичные и приватные методы. общедоступные методы будут доступны из другой части кода. Пока реализация приватного метода скрыта. Точно так же модуль может экспортировать или скрывать компоненты, директивы, сервисы и пайпы. экспортированные компоненты используются другими компонентами, а те, которые не экспортируются, скрыты и будут использоваться внутри самого модуля.

Функция декоратора @NgModule, которая принимает один объект с указанными ниже свойствами.

import { NgModule } from '@angular/core';
@NgModule({   
  declarations: [...],   
  imports: [...],
  exports: [...],   
  providers: [...],   
  bootstrap: [...] 
})

Для декоратора NgModule требуется как минимум три импорта свойств, объявления и начальная загрузка.

экспорт: экспортированные компоненты, директивы, службы и каналы видны и могут использоваться в шаблоне компонента другого NgModule.

imports: другие модули, чьи экспортируемые классы нужны шаблонам компонентов, объявленным в этом свойстве Ngmodule.

declarations: здесь будут добавлены компоненты, директивы и пайпы, принадлежащие этому NgModule.

Поставщики: должны сделать службы и значения известными для внедрения зависимостей. Они добавляются в корневую область и становятся доступными во всех частях приложения.

Компонент

Вид экрана контролируется компонентом. по крайней мере один компонент всегда присутствует в каждом проекте angular, и это корневой компонент. Декоратор @component — это функция, которая принимает объект со свойствами selector, templateUrl, styleUrls и provider.

import { Component } from '@angular/core';
@Component({
  selector: ' ',
  templateUrl: ' ',
  styleUrls: [...]
})

Шаблон

Шаблон — это форма HTML, которая сообщает Angular, как отображать компонент. который может изменять элементы перед отображением. Он также связывает данные приложения и DOM с помощью разметки привязки.

Метаданные

Метаданные в структуре компонента angular используются для украшения класса, чтобы он мог настроить ожидаемое поведение класса.

Привязка данных

Привязка данных — это механизм координации компонентов и шаблонов. Он устанавливает канал связи между частями HTML DOM (шаблон) с частями компонентов. Добавьте разметку привязки в HTML-шаблон, чтобы указать Angular, как соединить обе стороны.

Два типа привязки данных — это привязка событий и привязка свойств.

Привязка событий. используется, когда пользователь вводит данные, и вашему приложению необходимо отреагировать на них, обновив данные вашего приложения.

Привязка свойства: когда ваше приложение вычисляет некоторые значения на основе заданных данных, и вам необходимо отразить эти данные в HTML DOM.

Услуги

В angular службы — это часть кода или функций, которые доступны и могут повторно использоваться во многих других компонентах вашего приложения. Сервисы Angular — это объекты, которые вызываются только один раз за время существования приложения, а данные доступны на протяжении всего времени существования приложения.

Особенности угловых сервисов

Службы в angular — это классы машинописного текста с декоратором @injectable, который сообщает angular, что службы могут быть внедрены в компоненты, которым нужна эта служба. Они также могут внедрять другие службы в качестве зависимостей.

Создается только экземпляр службы, и один и тот же экземпляр используется каждым блоком приложения.

Директивы

Директивы — это атрибуты HTML, которые сообщают angular об изменении стилей или поведения элементов DOM. это в основном класс с декоратором @directive(). Различают следующие типы угловых директив.

Структурная директива. Они несут ответственность за изменение макета путем добавления, удаления и замены элементов в DOM.

Директива об атрибутах. Они отвечают за изменение поведения элементов DOM.

Директива компонента.Этот тип директив является наиболее распространенным типом директив. Он содержит информацию о том, как компоненты должны обрабатываться и использоваться во время выполнения. Он обозначается декоратором @component.

Внедрение зависимости

Зависимости — это службы или объекты, которые необходимы классу для выполнения его функций. Внедрение зависимостей или DI — это шаблон проектирования, в котором класс запрашивает зависимости от внешних ресурсов, а не создает их.

Чтобы определить класс как сервис в angular, используйте декоратор @injectable(), чтобы предоставить метаданные, которые позволяют angular внедрить его в компонент в качестве зависимости. Инжектор создает зависимости и поддерживает экземпляры зависимостей, которые можно повторно использовать на протяжении всего жизненного цикла приложения.