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

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

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

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

или ionViewDidLeave

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

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

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

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
0
233
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

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

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

Пример:

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

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

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