Пользовательские директивы позволяют абстрагировать повторяющуюся логику и манипуляции с DOM.
Особенности использования:
ngOnInit, ngOnDestroy) для управления поведением.ngIf, ngFor).Пример структурной директивы, показывающей содержимое в зависимости от условия:
typescript
Атрибутивные директивы для изменения внешнего вида или поведения элемента.
Пример атрибутивной директивы, меняющей цвет фона при наведении:
typescript
Сравнение пользовательских директив с компонентами:
| Особенность | Директива | Компонент |
|---|---|---|
| Шаблон | Нет собственного шаблона | Имеет собственный шаблон и стили |
| Селектор | Атрибут ([appDirective]) или класс | Элемент (<app-component>) |
| Манипуляция DOM | Прямой доступ к элементу-хосту | Управляет DOM внутри своего шаблона |
| Переиспользование | Поведение для существующих элементов | Создание новых элементов пользовательского интерфейса |
Использую директивы для добавления поведения к существующим элементам, валидации форм, работы с анимацией или специфической обработки событий. Компоненты применяю для создания самостоятельных, переиспользуемых блоков пользовательского интерфейса.