web-dev-qa-db-fra.com

ngOnInit vs ionViewDidLoad dans ionic 2 ou ionic 2+

Lequel vais-je utiliser pour l'initialisation des données et pourquoi?

ngOnInit() {
    this.type = 'category';
    this.getData();
    this.setData();
}

ionViewDidLoad() {
    this.type = 'category';
    this.getData();
    this.setData();
}
27
saif

ngOnInit est un crochet de cycle de vie appelé par Angular2 pour indiquer que Angular est terminé lors de la création du composant.

ionViewDidLoad est lié aux événements NavController de LifeCycle de l'Ionic. Il s'exécute lorsque la page a été chargée. Cet événement ne se produit qu'une fois par page en cours de création.

Fondamentalement, les deux sont de bons endroits pour initialiser les données du composant.

Mais pour utiliser ngOnInit, vous devez implémenter la classe OnInit de l'angulaire. De l'autre côté, ionViewDidLoad ne pourrait être défini que pour les composants poussés/sautés à partir de NavController.

Donc, je dirais que utilisez ionViewDidLoad pour les composants de la pile NavController et ngOnInit pour les autres composants.

65
naomi

le tir ionViewDidLoad est étroitement lié au NavController.

Si vous avez besoin d'un hook pour un composant rendu indépendamment de NavController (tous les composants d'un ionic 2 sont des pages), vous devez utiliser hooks à cycle de vie angulaire de crochets ioniques de contrôle de navigation .

Maintenant, lequel vous convient, cela dépend du cas d'implémentation.

Quoi qu'il en soit, les noms de tous ces crochets sont explicites la plupart du temps.

3
orouwk

Les deux fonctions fonctionnent de la même manière, elles sont appelées lors du chargement initial de la vue dans le DOM.

Grand blog sur les crochets du cycle de vie d'ionic2s ici .

2
Marcus Höglund