Difference between constructor and ngOnInit

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 calling new MyClass() it tries to find providers that match the types of the constructor parameters, resolves them and passes them to the constructor like

new MyClass(someArg);

ngOnInit 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 implementing OnInit is not mandatory but considered good practice):

import { Component, OnInit } from '@angular/core';

then to make use of the method OnInit, we have to implement 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()

Implement this interface to execute custom initialization logic after your directive’s data-bound properties have been initialized. ngOnInit is called right after the directive’s data-bound properties have been checked for the first time, and before any of its children have been checked. It is invoked only once when the directive is instantiated.

Mostly we use ngOnInit for all the initialisation/declaration and avoid stuff to work in the constructor. The constructor should only be used to initialise 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.

React – Learning path

This post is to track and record my learning of react and use it after some time.

Making some baby steps to learn react.

Here I will be document something related to it.

Basically I’m going to learn about React components, JSX syntax, Forms.

I have good amount knowledge and experience with angular. Now its time do some real learning and experiment in React. Lets do this.

For anyone who are new to React should have some basic understanding about the JavaScript and Web Development.

What is React?

React is a free and open-source front-end JavaScript library for building user interfaces or UI components. It is maintained by Facebook and a community of individual developers and companies. React can be used as a base in the development of single-page or mobile applications.

It focuses on providing rendering and event handling functionalities.

Dev Environment Setup

We need npm installed in our machine. And then we can install the create-react-app

Or if we already have nodejs installed. We can directly run following command to install the package.

npx create-react-app hello-world
cd hello-world
npm start

(npx comes with npm 5.2+ and higher)

It will install create-react-app and create a skeleton app with name hello-world.

After npm start in source folder

Its shows the following screen

Getting Started

…. to be continued