Konstruktor jest predefiniowaną domyślną metodą klasy maszynopis. Nie ma związku między Angular i constructor
. Zwykle używamy constructor
do definiowania/inicjowania niektórych zmiennych, ale kiedy mamy zadania związane z wiązaniami Angulara, przechodzimy do haka cyklu życia Angulara ngOnInit
. ngOnInit
jest wywoływana tuż po wywołaniu konstruktora. Możemy również wykonać tę samą pracę w konstruktorze, ale lepiej jest użyć ngOnInit
, aby rozpocząć wiązanie Angulara.
w celu wykorzystania ngOnInit
musimy importować ten hak z biblioteki rdzenia:
import {Component, OnInit} from '@angular/core'
Następnie wdrożymy ten interfejs z eksportowanego klasy (nie jest to obowiązkowe, aby wdrożyć ten interfejs, ale ogólnie zrobiliśmy).
Przykład wykorzystania zarówno:
export class App implements OnInit{
constructor(){
//called first time before the ngOnInit()
}
ngOnInit(){
//called after the constructor and called after the first ngOnChanges()
}
}
Więcej szczegółów patrz także Difference between Constructor and ngOnInit
Ale nie odpowiedziałeś na prawdziwe pytanie. który z nich powinniśmy użyć w tym przypadku ..? –
ngOnInit nie jest wywoływany zaraz po wywołaniu konstruktora, między nimi jest ngOnChanges: https://angular.io/guide/lifecycle-hooks – Hazlo8