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
Ваш комментарий успешно добавлен.
После проверки комментарий будет опубликован на сайте.