Изучение компонентов Angular 13: подробное руководство с примерами кода

Angular 13, последняя версия популярной интерфейсной платформы, содержит множество новых функций и улучшений. Одним из фундаментальных строительных блоков приложений Angular являются компоненты. В этой статье блога мы углубимся в компоненты Angular 13, изучим различные методы и приемы с разговорными объяснениями и примерами кода.

  1. Методы жизненного цикла компонента.
    Компоненты Angular имеют богатый набор методов жизненного цикла, которые позволяют выполнять задачи на разных этапах жизненного цикла компонента. Некоторые часто используемые методы жизненного цикла включают в себя:
    • ngOnInit(): этот метод вызывается после инициализации компонента и может использоваться для выполнения задач начальной настройки, таких как получение данных из API.
    • ngOnChanges(): этот метод вызывается всякий раз, когда изменяются входные свойства компонента, и может использоваться для реагирования на изменения данных.
    • ngAfterViewInit(): этот метод вызывается после инициализации представления компонента и может использоваться для взаимодействия с DOM.

Пример:

import { Component, OnInit, OnChanges, AfterViewInit } from '@angular/core';
@Component({
  selector: 'app-example',
  template: '<p>{{ message }}</p>',
})
export class ExampleComponent implements OnInit, OnChanges, AfterViewInit {
  message: string;
  ngOnInit() {
    this.message = 'Component initialized!';
  }
  ngOnChanges() {
    console.log('Input properties changed!');
  }
  ngAfterViewInit() {
    const element = document.getElementById('example');
    element.innerHTML = 'View initialized!';
  }
}
  1. Взаимодействие компонентов.
    Компонентам в Angular часто необходимо взаимодействовать друг с другом. Для этого существует несколько методов, в том числе:
    • Входные свойства. Компоненты могут передавать данные дочерним компонентам с помощью входных свойств, что упрощает обмен данными.
    • Выходные свойства и генераторы событий. Дочерние компоненты могут отправлять события, которые может прослушивать родительский компонент, обеспечивая взаимодействие в противоположном направлении.
    • Сервисы: компоненты могут обмениваться данными и взаимодействовать через сервисы, которые действуют как посредники.

Пример:

// Parent Component
import { Component } from '@angular/core';
@Component({
  selector: 'app-parent',
  template: `
    <h1>Parent Component</h1>
    <app-child [message]="parentMessage" (event)="handleEvent($event)"></app-child>
  `,
})
export class ParentComponent {
  parentMessage = 'Hello from parent!';
  handleEvent(event: string) {
    console.log('Event received:', event);
  }
}
// Child Component
import { Component, Input, Output, EventEmitter } from '@angular/core';
@Component({
  selector: 'app-child',
  template: `
    <h2>Child Component</h2>
    <p>{{ message }}</p>
    <button (click)="emitEvent()">Emit Event</button>
  `,
})
export class ChildComponent {
  @Input() message: string;
  @Output() event = new EventEmitter<string>();
  emitEvent() {
    this.event.emit('Child event emitted!');
  }
}
  1. Стилизация компонентов.
    Angular позволяет стилизовать компоненты различными методами, например:
    • Классы CSS: вы можете применять классы CSS к компонентам, чтобы определить их стили.
    • Встроенные стили: компоненты могут иметь встроенные стили, определенные непосредственно в их шаблонах.
    • Внешние таблицы стилей: вы можете связать внешние файлы CSS с вашими компонентами, чтобы отделить стили от логики компонента.

Пример:

<!-- Component Template -->
<div class="example-component">
  <p class="message">{{ message }}</p>
</div>
<!-- Component Styling -->
<style>
  .example-component {
    background-color: lightblue;
    padding: 10px;
  }
  .message {
    font-size: 16px;
    color: red;
  }
</style>

Компоненты Angular 13 играют решающую роль в создании современных веб-приложений. В этой статье мы рассмотрели различные методы, в том числе методы жизненного цикла компонентов, методы взаимодействия компонентов и варианты стилизации компонентов. Понимание этих методов позволит вам создавать мощные и интерактивные приложения Angular. Итак, вперед и используйте возможности компонентов Angular 13 для создания потрясающего пользовательского опыта!