Constructeur du composant angulaire 2 Vs OnInit [dupliquer]
cette question a déjà une réponse ici:
- différence entre le constructeur et ngOnInit 19 réponses
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?
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
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 premierngOnChanges
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...
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