¿Cuál usaré para inicializar datos y por qué?
ngOnInit() { this.type = 'category'; this.getData(); this.setData(); } ionViewDidLoad() { this.type = 'category'; this.getData(); this.setData(); }ngOnInit es un gancho de ciclo de vida llamado por Angular2 para indicar que Angular ha terminado de crear el componente.
ionViewDidLoad está relacionado con los eventos del ciclo de vida del NavController de Ionic. Se ejecuta cuando la página se ha cargado. Este evento solo ocurre una vez por página que se crea.
Básicamente, ambos son buenos lugares para inicializar los datos del componente.
Pero para usar ngOnInit , debe implementar la clase OnInit de Angular. Por otro lado, ionViewDidLoad solo podría definirse para componentes que se empujan/expulsan desde un NavController .
Entonces diría que use ionViewDidLoad para componentes en la pila NavController y ngOnInit para otros componentes.
El disparo de ionViewDidLoad está estrechamente relacionado con el NavController.
Si necesita un gancho para un componente que se renderiza independientemente del NavController (no todos los componentes en una aplicación ionic 2 son páginas), debe usar ganchos de ciclo de vida angular en lugar de ganchos de ionic navcontroller .
Ahora, cuál es el adecuado para usted, depende del caso de implementación.
De todos modos, los nombres de todos esos ganchos se explican por sí mismos la mayoría de las veces.