Angular

OnChanges

ΠœΠ΅Ρ‚ΠΎΠ΄ вызываСтся Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ Π΄Π°Π»Π΅Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ установлСнии ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… свойств ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ngOnChanges() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся экзСмпляром класса SimpleChanges ΠΈ содСрТит Π² качСствС ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈΠΌΠ΅Π½Π° Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… свойств, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… измСнились, Π° Π² качСствС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ этих ΠΊΠ»ΡŽΡ‡Π΅ΠΉ - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ со свойствами previousValue ΠΈ currentValue.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса SimpleChanges.

{
  property_1: {
    currentValue: property_current_value_1,
    previousValue: property_previous_value_1
  },
  property_2: {
    currentValue: property_current_value_2,
    previousValue: property_previous_value_2
  }
}

OnInit

ΠœΠ΅Ρ‚ΠΎΠ΄ вызываСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· сразу ΠΆΠ΅ Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ngOnChanges() ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ свойств ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Когда Angular Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ngOnInit, ΠΎΠ½ ΡƒΠΆΠ΅ построил DOM ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, вставил всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ зависимости Ρ‡Π΅Ρ€Π΅Π· конструктор ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π» назначСния Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свойства ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ngOnInit(), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° конструктора Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ свойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΅Ρ‰Π΅ нСдоступны.

ngOnInit() Π½Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ конструктору. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Π»Π΅Π½ΠΎΠ² класса, Π½ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ "Ρ€Π°Π±ΠΎΡ‚Ρƒ".

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ constructor() для настройки Injection Dependency ΠΈ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ.

Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимости (Π°Π½Π³Π». Dependency Injection, DI) - шаблон проСктирования, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ классам, внСшниС зависимости Π² Π²ΠΈΠ΄Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ конструктору зависимому ΠΎΡ‚ Π½ΠΈΡ… класса.

DoCheck

Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ngDoCheck() осущСствляСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ запускС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Change Detection) ΠΈ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· сразу ΠΆΠ΅ послС Π²Ρ‹Π·ΠΎΠ²Π° ngOnInit().

AfterContentInit

ΠœΠ΅Ρ‚ΠΎΠ΄ ngAfterContentInit() вызываСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· сразу послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ngDoCheck() ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² шаблонС Π±Ρ‹Π» ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Ρ‚Π΅Π³Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

ΠœΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° опрСдСляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ элСмСнта <ng-content />. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ здСсь.

AfterViewInit

ngAfterViewInit() вызываСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· посСл ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ngAfterContentChecked() ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ части ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Π΅Π³ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

ЗначСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚Ρ‹Ρ… Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ @ViewChild() ΠΈ @ViewChildren(), становятся доступны Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° ngAfterViewInit().

AfterViewChecked

ΠœΠ΅Ρ‚ΠΎΠ΄ ngAfterViewChecked() вызываСтся сразу послС ngAfterViewInit() ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ части ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. ЯвляСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π° ngAfterContentChecked().

OnDestroy

Π’Ρ‹Π·ΠΎΠ² ngOnDestroy() осущСствляСтся нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈΠ· DOM ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для совобоТдСния рСсурсов, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Subscription, Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ событий.

Last updated