Which one will I use for initializing data and why?
ngOnInit() { this.type = 'category'; this.getData(); this.setData(); } ionViewDidLoad() { this.type = 'category'; this.getData(); this.setData(); }
ngOnInit. Fired once during component initialization. This event can be used to initialize local members and make calls into services that only need to be done once.
First, about ionic life cycle. If you write down all ionic events and put a console. log in each, you will see the scenario: constructor --> ionViewDidLoad --> ionViewWillEnter --> ionViewDidEnter --> ionViewWillLeave --> ionViewDidLeave --> ionViewWillUnload.
ngAfterViewInit()linkA callback method that is invoked immediately after Angular has completed initialization of a component's view. It is invoked only once when the view is instantiated.
Ionic Lifecycle MethodsFired when the component routing to has finished animating. ionViewWillLeave. Fired when the component routing from is about to animate. ionViewDidLeave. Fired when the component routing to has finished animating.
ngOnInit
is a life cycle hook called by Angular2 to indicate that Angular is done creating the component.
ionViewDidLoad
is related to the Ionic's NavController
lifeCycle events. It runs when the page has loaded. This event only happens once per page being created.
Basically both are good places for initializing the component's data.
But for using ngOnInit
you need to implement the Angular's OnInit
class, In the other hand ionViewDidLoad
could be only defined for components that are pushed/popped from a NavController
.
So I would say use the ionViewDidLoad
for components in the NavController
stack and ngOnInit
for other components.
ionViewDidLoad firing is close related to the NavController.
If you need a hook for a component that is rendered independent of the NavController (not all components in an ionic 2 app are pages) you should use angular lifecycle hooks instead of ionic navcontroller hooks.
Now, which one is suitable for you, it depends on the implementation case.
Anyway the names of all those hooks are self-explanatory most of the times.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With