离子生命周期与角度生命周期和离子生命周期之间的区别

时间:2018-10-31 10:35:03

标签: angular ionic-framework lifecycle subscription

我有一个显示城市的页面: 此页面使用名为“ CitiesProvider”的提供程序 由于这些城市可能会发生变化,因此我将“订阅”设置为:

this.citiesSubscription = this.CitiesProvider.salesChanged
  .subscribe(
    (cities: City[]) => this.cities = cities
  )

在哪里放置“取消订阅”方法的最佳位置是: ionViewWillLeave

ionViewDidLeave

ionViewWillUnload 如果我把它放在另一个地方会出什么问题?

使用(离子)生命周期飞节或使用

有什么区别

ngOndestroy来自Anglar或来自角度的任何飞节(因为离子页面也是角度分量

1 个答案:

答案 0 :(得分:1)

您应使用 ngOnDestroy ionViewWillUnload 取消订阅Observables

每次您离开页面时,ionViewDidLeaveionViewWillLeave钩子都会被触发,但并不表示页面被破坏/从dom中移除。

示例

如果您使用NavController将页面推入堆栈,则会触发ionViewDidLeave但不会触发销毁钩子,因为该页面实际上停留在dom中。如果您向后浏览,订阅仍将确保所有内容都是最新的。

如果您要在退出页面时退订,则需要在ionViewWillEnter生命周期挂钩中再次订阅。