在Ionic中,页面是缓存的,正因为如此,使用angular生命周期钩子(ngOnInit,ngOnDestoy,…)并不总是好的。它们不会工作,因为页面仍然在堆栈上。
在Google和实验的帮助下,我学到了2个解决方案(+一点实验…)
-
选项A =>"ng-hooks +离子导航">
你可以使用angular生命周期钩子(ngOnInit,ngOnDestroy,…),
但是你需要使用navController.navigateRoot(...)
来导航(为什么这个方法解决了这个问题-我不知道,它是神奇的) -
选项B =>"ng-navigation +离子钩子">
你可以使用router.navigate(...)
,
应用angular路由,但随后你需要使用Ionic生命周期钩子
(例如,ionViewDidEnter,ionViewDidLeave,…)
这当然很好,但我想要更多的角度逻辑,而不是离子逻辑。
问题#1=比;你使用哪个选项,为什么?
然而,似乎不同的页面以不同的方式缓存。
路由时,一个页面将简单地改变其在堆栈中的位置,
而另一个页面将从堆栈中删除(出于某种原因)
这就是我完全误解的开始。
问题# 2=比;它是如何工作的(简单来说)?
注:提前感谢您的回答,我很有兴趣知道)
取决于离子版本。
版本3使用导航控制器推送页面。
Version 4及以上版本使用与angular相同的路由器。
但两者都使用离子页面生命周期钩子。
- ionViewDidEnter
https://ionicframework.com/docs/angular/lifecycle