ANGULAR19 октября
Декораторы в Angular — это специальный синтаксический элемент, используемый для аннотирования и конфигурирования классов. Они позволяют Angular понимать, какие компоненты, сервисы или другие сущности должны обрабатываться определённым образом. Благодаря декораторам, Angular может связывать классы с необходимыми метаданными, которые позволяют им функционировать в контексте фреймворка.
@Component — декоратор для создания компонентов.@Directive — декоратор для создания директив.@Injectable — декоратор для создания сервисов.@NgModule — декоратор для создания модулей.@Input и @Output — декораторы для взаимодействия между компонентами.@HostListener и @HostBinding — декораторы для работы с событиями и привязкой к свойствам DOM-элементов.@Component@Component используется для создания компонента и определения его метаданных, таких как селектор, шаблон, стили и многое другое.
selector: указывает имя селектора, которое используется для вставки компонента в HTML.templateUrl: путь к файлу с HTML-шаблоном.styleUrls: массив путей к файлам со стилями для компонента.
@Directive@Directive используется для создания директив, которые могут изменять поведение или внешний вид элементов в DOM.
appHighlight изменяет фон элемента на жёлтый.<p appHighlight>Текст с выделением</p>.
@Injectable@Injectable используется для аннотирования классов, которые могут быть инжектированы в другие компоненты или сервисы. Это основа для сервисов Angular, которые часто содержат бизнес-логику и взаимодействуют с API.
@Injectable указывает, что DataService может быть внедрён (инжектирован) в другие компоненты.{ providedIn: 'root' } означает, что сервис будет доступен на уровне всего приложения.
@NgModule@NgModule используется для создания модуля, который объединяет компоненты, директивы, пайпы и другие элементы Angular в единое целое. Модули могут импортировать и экспортировать другие модули, что упрощает структуру и организацию больших приложений.
|
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
|
declarations: список компонентов, директив и пайпов, объявленных в модуле.imports: список других модулей, которые импортируются в этот модуль.bootstrap: корневой компонент, который будет загружен при запуске приложения.
@Input и @OutputЭти декораторы используются для обмена данными между родительским и дочерним компонентами.
@Input используется для получения данных от родительского компонента.@Output — для передачи событий от дочернего компонента в родительский.@Input:В этом примере переменная name передаётся в дочерний компонент через родительский:
Здесь метод sendData() отправляет событие в родительский компонент.
@HostListener и @HostBinding@HostListener позволяет реагировать на события хост-элемента.@HostBinding привязывает свойство класса к свойству хоста.@HostListener и @HostBinding:|
import { Directive, HostListener, HostBinding } from '@angular/core';
@Directive({
selector: '[appHoverHighlight]'
})
export class HoverHighlightDirective {
@HostBinding('style.backgroundColor') backgroundColor: string;
@HostListener('mouseenter') onMouseEnter() {
this.backgroundColor = 'yellow';
}
@HostListener('mouseleave') onMouseLeave() {
this.backgroundColor = 'white';
}
}
|
@HostBinding('style.backgroundColor'): привязывает свойство backgroundColor к стилю элемента.@HostListener('mouseenter'): реагирует на событие наведения мыши.Теги: #angular
Ваш комментарий успешно добавлен.
После проверки комментарий будет опубликован на сайте.