Разница между ионным и угловым и ионным жизненными циклами

У меня есть страница, на которой показаны города: на этой странице используется поставщик CitiesProvider. Поскольку эти города могут меняться, я поставил подписку, например:

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

Где лучше всего разместить метод отказа от подписки между: ionViewWillLeave

или ionViewDidLeave

или ionViewWillUnload а что пойдет не так, если я вставлю его в другой?

И в чем разница между использованием этих (ионных) перемычек жизненного цикла или использованием

ngOndestroy от Anglar или любые скакательные суставы, исходящие от angular (поскольку ионные страницы также являются угловым компонентом

0
0
233
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны использовать ngOnDestroy или ionViewWillUnload, чтобы отказаться от подписки на Observables.

Хуки ionViewDidLeave и ionViewWillLeave срабатывают каждый раз, когда вы покидаете страницу, но не указывают на то, что страница уничтожается / удаляется из dom.

Пример:

Если вы используете NavController для проталкивания страницы в стек, срабатывает ionViewDidLeave, но не ловушка уничтожения, потому что страница фактически остается в dom. Если вы вернетесь назад, подписки по-прежнему гарантируют, что все обновлено.

Если вы откажетесь от подписки, покидая страницу, вам нужно снова подписаться в ловушке жизненного цикла ionViewWillEnter.

Другие вопросы по теме