Constructor de componentes angulares 2 Vs. OnInit

Si quiero que la función x ocurra cada vez que se carga un componente, ya sea la primera vez, navego a un sitio diferente y navego hacia atrás o es la quinta vez que el componente se carga.

¿En qué debería poner la función x? ¿El constructor del componente o OnInit?

Constructor es un método predeterminado predefinido de la clase de mecanografía. No hay relación entre Angular y constructor . Normalmente usamos el constructor para definir / inicializar algunas variables, pero cuando tenemos tareas relacionadas con los enlaces de Angular nos movemos al gancho del ciclo de vida ngOnInit de Angular. ngOnInit se llama justo después de la llamada del constructor. También podemos hacer el mismo trabajo en el constructor, pero es preferible utilizar ngOnInit para iniciar la vinculación de Angular.

para usar ngOnInit tenemos que importar este gancho de la biblioteca central:

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

Luego implementamos esta interfaz con la clase exportada (esto no es obligatorio para implementar esta interfaz, pero generalmente lo hicimos).

Ejemplo de uso de ambos:

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

Para obtener más detalles, consulte también Diferencia entre Constructor y ngOnInit

El primero (constructor) está relacionado con la instanciación de clase y no tiene nada que ver con Angular2. Quiero decir que un constructor se puede usar en cualquier clase. Puede ponerle algún proceso de inicialización para la instancia recién creada.

El segundo corresponde a un gancho de ciclo de vida de componentes Angular2:

  • ngOnChanges se ngOnChanges cuando cambia un valor de enlace de entrada o salida
  • ngOnInit se llama después de los primeros ngOnChanges

Por lo tanto, debe usar ngOnInit si el proceso de inicialización de su función depende de los enlaces del componente (por ejemplo, los parámetros de los componentes definidos con @Input ); de lo contrario, el constructor sería suficiente …

constructor() es una característica de mecanografía y se llama para new SomeClass() . El constructor asegura el orden de inicialización de campo correcto en las jerarquías de clase.

ngOnInit es un método de ciclo de vida angular2 que Angular llama cuando termina de construir el componente y después de que evaluó los enlaces y actualizó las entradas la primera vez.

Ver también Diferencia entre Constructor y ngOnInit