Методы жизненного цикла Angular компонента?

Angular предоставляет набор методов жизненного цикла компонента, которые вызываются в различные моменты его жизни, начиная от создания и инициализации, до удаления и уничтожения. Эти методы позволяют разработчику выполнять определенные действия на каждом этапе жизненного цикла компонента.

Вот основные методы жизненного цикла Angular компонента:

  1. constructor: Это первый метод, который вызывается при создании экземпляра компонента. В нём обычно выполняется инициализация свойств компонента и внедрение зависимостей. Пример:
import { Component } from '@angular/core'

@Component({
	selector: 'app-my-component',
	template: '...'
})
export class MyComponent {
	constructor() {
		console.log('Constructor called')
	}
}
  1. ngOnChanges: Этот метод вызывается, когда компонент получает новые значения входных свойств (@Input). Он позволяет реагировать на изменения и выполнить определенные действия при каждом изменении свойств. Пример:
import { Component, Input, SimpleChanges } from '@angular/core'

@Component({
	selector: 'app-my-component',
	template: '...'
})
export class MyComponent {
	@Input() name: string

	ngOnChanges(changes: SimpleChanges) {
		console.log('ngOnChanges called')
		console.log(changes)
	}
}
  1. ngOnInit: Этот метод вызывается после того, как компонент и его привязки инициализированы. Он является идеальным местом для выполнения инициализации данных или получения данных через сервисы. Пример:
import { Component, OnInit } from '@angular/core'

@Component({
	selector: 'app-my-component',
	template: '...'
})
export class MyComponent implements OnInit {
	ngOnInit() {
		console.log('ngOnInit called')
		// Инициализация данных или вызов сервисов
	}
}
  1. ngDoCheck: Этот метод вызывается при каждой проверке изменений в компоненте и его дочерних компонентах. Он позволяет обнаруживать и реагировать на изменения, которые не были замечены автоматическим механизмом обнаружения изменений Angular. Пример:
import { Component, DoCheck } from '@angular/core'

@Component({
	selector: 'app-my-component',
	template: '...'
})
export class MyComponent implements DoCheck {
	ngDoCheck() {
		console.log('ngDoCheck called')
		// Обнаружение и реагирование на изменения
	}
}
  1. ngAfterViewInit: Этот метод вызывается после инициализации представления компонента и его дочерних представлений. Он используется для выполнения операций, которые требуют доступа к DOM-элементам или инициализации сторонних библиотек. Пример:
import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core'

@Component({
	selector: 'app-my-component',
	template: '<div #myDiv></div>'
})
export class MyComponent implements AfterViewInit {
	@ViewChild('myDiv') myDiv: ElementRef

	ngAfterViewInit() {
		console.log('ngAfterViewInit called')
		console.log(this.myDiv.nativeElement)
		// Доступ к DOM-элементам или инициализация сторонних библиотек
	}
}
  1. ngOnDestroy: Этот метод вызывается перед уничтожением компонента. Он используется для выполнения очистки ресурсов, отписки от подписок, отмены таймеров и других операций, связанных с завершением работы компонента. Пример:
import { Component, OnDestroy } from '@angular/core'
import { Subscription } from 'rxjs'

@Component({
	selector: 'app-my-component',
	template: '...'
})
export class MyComponent implements OnDestroy {
	private subscription: Subscription

	ngOnDestroy() {
		console.log('ngOnDestroy called')
		this.subscription.unsubscribe()
		// Очистка ресурсов и отмена подписок
	}
}

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