Angular provides life cycle hook ngOnInit
by default.
Why should ngOnInit
be used, if we already have a constructor
?
angularangular-lifecycle-hooksngoninittypescript
Angular provides life cycle hook ngOnInit
by default.
Why should ngOnInit
be used, if we already have a constructor
?
Best Answer
The
Constructor
is a default method of the class that is executed when the class is instantiated and ensures proper initialisation of fields in the class and its subclasses. Angular, or better Dependency Injector (DI), analyses the constructor parameters and when it creates a new instance by callingnew MyClass()
it tries to find providers that match the types of the constructor parameters, resolves them and passes them to the constructor likengOnInit
is a life cycle hook called by Angular to indicate that Angular is done creating the component.We have to import
OnInit
like this in order to use it (actually implementingOnInit
is not mandatory but considered good practice):then to make use of the method
OnInit
, we have to implement the class like this:Mostly we use
ngOnInit
for all the initialization/declaration and avoid stuff to work in the constructor. The constructor should only be used to initialize class members but shouldn't do actual "work".So you should use
constructor()
to setup Dependency Injection and not much else. ngOnInit() is better place to "start" - it's where/when components' bindings are resolved.For more information refer here:
https://angular.io/api/core/OnInit
Angular Component Constructor Vs OnInit