Constructeur du composant angulaire 2 Vs OnInit [dupliquer]

cette question a déjà une réponse ici:

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 site différent et naviguer en arrière ou c'est la cinquième fois que le composant a chargé.

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

85
demandé sur Sujatha Girijala 2016-03-07 16:53:55

3 réponses

Constructor est la méthode par défaut prédéfinie de la classe typescript. Il n'y a pas de relation entre L'angle et constructor . Normalement, nous utilisons constructor pour définir/initialiser certaines variables, mais lorsque nous avons des tâches liées aux fixations D'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 de L'angle.

pour utiliser ngOnInit nous devons importer ce crochet de la bibliothèque de base:

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

puis nous implémentons cette interface avec la classe exportée (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 le constructeur et ngOnInit

88
répondu Pardeep Jain 2017-06-30 21:26:07

Le premier (constructeur) est liée à l'instanciation de classe et n'a rien à voir avec Angular2. Un constructeur peut être utilisé dans n'importe quelle classe. Vous pouvez y mettre quelques initialisation traitement pour l'instance nouvellement créée.

le second correspond à un crochet 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 le premier ngOnChanges

vous devez donc utiliser ngOnInit si le traitement d'initialisation de votre fonction repose sur des fixations du composant (par exemple les paramètres du composant définis avec @Input ), sinon le constructeur serait suffisant...

26
répondu Thierry Templier 2016-03-07 13:56:44

constructor() est une caractéristique dactylographiée appelée new SomeClass() . Le constructeur assure un bon ordre d'initialisation des champs dans les hiérarchies de classe.

ngOnInit est une méthode de cycle de vie Angular2 qui est appelée par Angular quand il est fait la construction du composant et après qu'il a évalué les fixations et mis à jour les entrées la première fois.

Voir aussi différence entre le constructeur et ngOnInit "151990920

19
répondu Günter Zöchbauer 2017-05-23 11:47:24