Son la forma en que se construye y se destruye un componente, estos métodos especiales nos ayudan a realizar ciertas tareas dependiendo de la necesidad de la lógica dentro de la app. y son el estado normal en que un componente puede tener en todo el tiempo en que esta en ejecucion.

<aside> 💡 Todo menos el constructor deben ser implementados en la clase desde @angular/core

</aside>

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0af92b1a-0b8d-416b-b5fd-0b7310d8aadf/descarga.png

export class ProductComponent implements OnInit, OnDestroy { ... }

Constructor

Como su nombre lo dice se encarga de contruir el componente. siempre es el primero en ejecutarce, normalmente en casi todos los lenguajes de programacion existe este paradigma dentro de el.

En el constructor se insertan todas las inyecciones de depencias o ejecución de codigo que el componponente necesita para construirse.

<aside> 💡 Es buena practica nombrar las inyecciones con el mismo nombre pero con minuscula al principio y las clases con mayuscula al principio.

</aside>

Dentro del contructor estamos inyectando la dependencia ProductsService con su nombre productsService de manera privada para que solo pueda ser utilizada por el componente

constructor(
	private productsService: ProductsService) {
    this.metodo();
  }

Tambien estamos insertando un metodo del mismo componente para que sea ejecutado en el momento en que este se contruya, normalmente en el contructor se ejecuta codigo de construccion que no sea de llamado de datos, pues es preferible utilizar estos metodos dentro de NgOnInit()

NgOnChanges

Este método vigila los cambios de estado del componente de manera nativa, y se ejecuta todas las veces que el componente mute, el genera conflicto al implementarlo con ngDoCheck ya que este ultimo también vigila el estado del componente pero de manera customizada. Para utilizarlo también se debe importar el método simpleChangescompara el valor actual por el anterior.

import {onChange, simpleChanges} from '@angular/core';

export class ejemplo implements onChange {

ngOnChanges( change: simpleChanges){
	...
}

ngOnInit

Es parecido al contructor pero este metodo se encarga de alistar todos lo que necesitamos para que el componente se inicie, y se ejecuta una vez, alista todo en la interfaz grafica por esto es muy utilizado para lo que son llamados de datos inciales en el componente.

NgDoCheck

Se encarga escuchar el cambio de los estados del componente igual que NgOnChages pero este se divide en diferenetes momentos.

NgOnDestroy

Se ejecuta despues de que el componente se destruya es decir que ya no esta siendo utilizado por el usuario es ideal para cancelar suscripciones de datos o de evetos y todo lo que queremos hacer despues de este momento.