Angular — это популярный фронтенд-фреймворк JavaScript, который предоставляет мощный способ создания одностраничных приложений (SPA). В Angular внедрение зависимостей (DI) — ключевая функция, которая позволяет эффективно управлять зависимостями в наших приложениях. Система инъекции зависимостей от Angular использует InjectionTokens для реализации определённых специальных требований к инъекции зависимостей. В этой статье я подробно объясню, чем занимается InjectionToken, и приведу примеры для его практического применения в приложениях Angular.
Что такое инъекция зависимости?
Прежде чем перейти к InjectionToken, давайте сначала разберёмся, что такое инъекция зависимостей. Инъекция зависимостей — это шаблон проектирования, который позволяет нам вводить зависимости одного объекта (например, сервисов или конфигурации) в другой объект без жёсткого кодирования этих зависимости. Преимущества этого включают:
1. Поддерживаемость: Внедряя зависимости в компоненты, мы можем легко изменять эти зависимости без необходимости модифицировать обширный код. 2. Тестируемость: Мы можем легко предоставлять симулированные зависимости компонентов для модульного тестирования без создания экземпляров этих зависимостей. 3. Слабая муфта: Впрыск зависимости помогает нам добиться слабой муфты, делая взаимоотношения между отдельными компонентами более гибкими.
В Angular встроена инжекция зависимостей, а контейнер инжекции зависимостей отвечает за управление созданием и жизненным циклом зависимостей.
Зачем вам нужен InjectionToken?
Иногда нужно вводить зависимостиЭто не экземпляр класса, а элемент конфигурации, строка или другое неклассовое значение。 Вот тут и вступает в игру InjectionToken, позволяющий нам вводить значения вне класса в компоненты или сервисы в виде зависимостей.
Что делает InjectionToken?
Роль InjectionToken заключается в определении идентификатора, который идентифицирует зависимости. Он позволяет нам вводить любое значение в компонент или сервис Angular, а не просто экземпляр класса. Обычно мы создаём InjectionToken где-то в приложении и используем его там, где нужно ввести это значение.
Вот основные функции InjectionToken:
1. Уникальная идентификация: InjectionToken — это уникальный идентификатор, гарантирующий уникальность зависимостей. Это важно для предотвращения путаницы или конфликтов в зависимостях. 2. Инъекция зависимостей без классов: InjectionToken позволяет нам вводить любое значение, а не только экземпляр класса. Это полезно в таких ситуациях, как конфигурации, константы, строки и т.д. 3. Конфигурация провайдера: с помощью конфигурации провайдера мы можем указать Angular, как предоставить экземпляр зависимости для InjectionToken. Это позволяет нам предоставлять разные значения для InjectionTokens в разных контекстах.
Теперь давайте подробно рассмотрим использование и роль InjectionToken с несколькими примерами.
Внедрить конфигурацию приложения
Например, мы вводим конфигурацию приложения с URL-адресом и именем среды, и код выглядит следующим образом:
Из инъекции конструктора распечатка выглядит следующим образом:
Ссылка:
Вход по гиперссылке виден.
Вход по гиперссылке виден. |