【发布时间】:2018-04-08 18:56:09
【问题描述】:
我有两页:
- 首页
- 关于页面
HomePage 是 rootPage。
在启动时调用HomePage#ionViewDidLoad。我使用 NavController 从 HomePage 导航到 AboutPage:
navigateToAbout(): void {
this.navCtrl.push('AboutPage');
}
每次我导航到 AboutPage 时,都会调用 AboutPage#ionViewDidLoad。如果我使用ion-navbar 导航回到主页,HomePage#ionViewDidLoad 会被不调用,但如果我使用navCtrl.push('HomePage'),HomePage#ionViewDidLoad 会再次被调用。
有人可以解释一下,如果我使用navCtrl.push(...),为什么每次都会调用 ionViewDidLoad。根据Ionic NavController Doc,页面应该被缓存并且 ionViewDidLoad 每个页面应该只调用一次:
视图创建
默认情况下,如果页面被导航,页面会被缓存并留在 DOM 中 远离但仍在导航堆栈中(a 上的退出页面 推()例如)。它们在从 导航堆栈(在 pop() 或 setRoot() 上)。
ionViewDidLoad
页面加载后运行。此事件仅发生 每页创建一次。如果页面离开但被缓存,那么这个 事件不会在随后的查看中再次触发。 ionViewDidLoad 事件是放置页面设置代码的好地方。
【问题讨论】:
标签: caching ionic-framework navigation lifecycle