Costruttore angular a 2 componenti V Oninit

Se voglio che la funzione x si verifichi ogni volta che un componente viene caricato, se è la prima volta, navigo in un altro sito e navigo all’indietro o è la quinta volta che il componente è stato caricato.

Cosa dovrei inserire la funzione x in? Il costruttore di componenti o OnInit?

Il costruttore è un metodo predefinito predefinito della class typescript. Non esiste alcuna relazione tra angular e constructor . Normalmente utilizziamo il constructor per definire / inizializzare alcune variabili, ma quando abbiamo compiti relativi ai collegamenti di Angular ngOnInit hook del ciclo di vita di ngOnInit di Angular. ngOnInit viene chiamato subito dopo la chiamata del costruttore. Possiamo anche fare lo stesso lavoro nel costruttore ma è preferibile usare ngOnInit per avviare il binding di Angular.

per utilizzare ngOnInit dobbiamo importare questo hook dalla libreria principale:

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

Quindi implementiamo questa interfaccia con la class esportata (questo non è obbligatorio per implementare questa interfaccia ma generalmente lo abbiamo fatto).

Esempio di utilizzo di entrambi:

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

Per maggiori dettagli vedi anche Differenza tra Constructor e ngOnInit

Il primo (costruttore) è correlato all’istanza della class e non ha nulla a che fare con Angular2. Voglio dire che un costruttore può essere utilizzato su qualsiasi class. Puoi inserire qualche elaborazione di inizializzazione per l’istanza appena creata.

Il secondo corrisponde ad un hook del ciclo di vita dei componenti Angular2:

  • ngOnChanges viene chiamato quando un valore di binding di input o output cambia
  • ngOnInit viene chiamato dopo i primi ngOnChanges

Quindi dovresti usare ngOnInit se l’elaborazione di inizializzazione della tua funzione si basa sui collegamenti del componente (ad esempio, i parametri del componente definiti con @Input ), altrimenti il ​​costruttore sarebbe sufficiente …

constructor() è una funzione typescript e viene chiamato per new SomeClass() . Il costruttore garantisce l’ordine di inizializzazione del campo corretto nelle gerarchie di classi.

ngOnInit è un metodo del ciclo di vita Angular2 che viene chiamato da Angular quando viene completato la creazione del componente e dopo aver valutato i binding e aggiornato gli input la prima volta.

Vedi anche Differenza tra Constructor e ngOnInit