Tuesday, 7 July 2020

Difference between Constructor and ngOnInit

Angular provides lifecycle hook ngOnInit by default.

Why should ngOnInit be used, if we already have a constructor?

The Constructor is a default method of the class that is executed when the class is instantiated and ensures proper initialization of fields in the class and its subclasses. 

ngOnInit is a lifecycle hook called by Angular to indicate that Angular is done creating the component.
We have to import OnInit in order to use like this (implementing OnInit is not mandatory but considered good practice):

import {ComponentOnInitfrom '@angular/core';

then to use the method of OnInit we have to implement in the class like this.

export class App implements OnInit{
    constructor(){
     //called first time before the ngOnInit()
    }
    ngOnInit(){
      //called after the constructor and called  after the first ngOnChanges()
       }
      }

Mostly we should 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.



Related Posts:

  • ExpressJs Router Routing refers to determining how an application responds to a client request to a particular endpoint, which is a URI (or path) and a specific HTTP … Read More
  • HTTP Interceptors In Angular Sending HTTP Headers to every request in Angular Let’s say we want to send 3 headers in http request : Content-Type, Accept and Accept-Language. To … Read More
  • Router Guards- Angular 2 Protecting routes is a very common task when building applications, as we want to prevent our users from accessing areas that they’re not allowed to … Read More
  • Angular 4 Compiler Angular compilation Angular offers two ways to compile your application: Ahead-of-Time (AOT)-  which compiles your app at build time. The Angu… Read More
  • Lazy Loading Modules There are three main steps to setting up a lazy loaded child module: Create the child module. Create the child module’s routing module. Configure … Read More

0 comments:

Post a Comment

Topics

ADFS (1) ADO .Net (1) Ajax (1) Angular (47) Angular Js (15) ASP .Net (14) Authentication (4) Azure (3) Breeze.js (1) C# (55) CD (1) CI (2) CloudComputing (2) Coding (10) CQRS (1) CSS (2) Design_Pattern (7) DevOps (4) DI (3) Dotnet (10) DotnetCore (20) Entity Framework (5) ExpressJS (4) Html (4) IIS (1) Javascript (17) Jquery (8) jwtToken (4) Lamda (3) Linq (10) microservice (4) Mongodb (1) MVC (46) NodeJS (8) React (10) SDLC (1) Sql Server (32) SSIS (3) SSO (1) TypeScript (3) UI (1) UnitTest (2) WCF (14) Web Api (16) Web Service (1) XMl (1)

Dotnet Guru Archives