Angular 2, constructeur de composants Vs OnInit

Si je veux que la fonction x se produise chaque fois qu’un composant se charge, que ce soit la première fois, je navigue vers un autre site et navigue en arrière ou c’est la cinquième fois que le composant est chargé.

Que dois-je mettre en fonction x? Le constructeur de composants ou OnInit?

    Le constructeur est une méthode par défaut prédéfinie de la classe typograph. Il n’y a pas de relation entre angular et constructor . Normalement, nous utilisons un constructor pour définir / initialiser certaines variables, mais lorsque nous avons des tâches liées aux liaisons de Angular, nous passons au crochet du cycle de vie ngOnInit d’Angular. ngOnInit est appelé juste après l’appel du constructeur. Nous pouvons également faire le même travail dans le constructeur, mais il est préférable d’utiliser ngOnInit pour démarrer la liaison Angular.

    pour utiliser ngOnInit nous devons importer ce hook depuis la bibliothèque principale:

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

    Ensuite, nous implémentons cette interface avec la classe exscope (ce n’est pas obligatoire pour implémenter cette interface mais généralement nous l’avons fait).

    Exemple d’utilisation des deux:

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

    Pour plus de détails, voir aussi Différence entre constructeur et ngOnInit

    Le premier (constructeur) est lié à l’instanciation de classe et n’a rien à voir avec Angular2. Je veux dire qu’un constructeur peut être utilisé sur n’importe quelle classe. Vous pouvez y mettre en place un traitement d’initialisation pour l’instance nouvellement créée.

    Le second correspond à un crochet de cycle de vie des composants Angular2:

    • ngOnChanges est appelé lorsqu’une valeur de liaison d’entrée ou de sortie change
    • ngOnInit est appelé après les premiers ngOnChanges

    Vous devriez donc utiliser ngOnInit si le traitement d’initialisation de votre fonction repose sur des liaisons du composant (par exemple, des parameters de composant définis avec @Input ), sinon le constructeur suffirait …

    constructor() est une fonctionnalité de type texte et est appelée pour la new SomeClass() . Le constructeur assure un ordre d’initialisation de champ correct dans les hiérarchies de classes.

    ngOnInit est une méthode de cycle de vie Angular2 appelée par Angular lorsque la construction du composant est terminée et après évaluation des liaisons et mise à jour des entrées la première fois.

    Voir aussi Différence entre constructeur et ngOnInit