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