offline version v3
Запись на курсы по HTML, CSS, JavaScript, PHP, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
menu

Хук ngOnChanges в Angular

Хук ngOnChanges работает при изменении дочернего компонента родительским Реагирует, когда Angular устанавливает или сбрасывает привязанные к данным свойства ввода. Метод получает объект SimpleChanges с текущим и предыдущим значениями свойств. Это происходит часто, поэтому любые операции, выполняемые здесь, существенно влияют на производительность. Вызывается перед ngOnInit() (если у компонента есть связанные входы) и всякий раз, когда одно или несколько связанных с данными входных свойств изменяются. Если у вашего компонента нет входов или вы используете его, не предоставляя никаких входов, фреймворк не будет вызывать ngOnChanges().

export class AppComponent { public name: string = '111' meth() { this.name = '222'; } }

<app-user [name]="name"></app-user>

<button (click)="meth()">button</button>

Метод ngOnChanges автоматически вызывается при изменении свойств компонента. Он срабатывает перед инициализацией компонента, т.е. перед методом ngOnInit.

При этом в методе можно получить текущее и предыдущее значение измененного свойства класса компонента. Для этого нужно в метод ngOnChanges передать параметр SimpleChanges.

В этом случае перед работой с данным методом нам необходимо импортировать следующие интерфейсы и компоненты:

import {OnChanges, SimpleChanges } from '@angular/core';

export class UserComponent implements OnChanges { @Input() public name: string = '' ngOnChanges(changes: SimpleChanges) { let data = changes['name']; // имя свойства let curr = data.currentValue; let prev = data.previousValue; console.log('changes', prev, curr); } }