Ответ 1
Основываясь на разговоре из комментариев:
Это может быть то же самое с точки зрения Angular, но страницы и компоненты имеют другое значение в Ionic. В терминах Angular оба являются только компонентами, но в контексте Ionic, Страница является компонентом, который будет действовать как полный вид (он может иметь вложенные компоненты); мы видим, что ионические страницы являются автономной концепцией. Компонент будет частью большей части большей части времени в приложениях Angular, поэтому я предполагаю, что самая большая разница с Pages.
О том, что при использовании крючков жизненного цикла Angular мне нравится использовать их при работе с вложенными компонентами, но я предпочитаю перехваты жизненного цикла Ionic при работе на страницах. В основном потому, что такие вещи, как ionViewWillEnter
, не имеют особого смысла в контексте простого компонента, где ngOnInit
делает. При этом я также использовал несколько крючков жизненного цикла Angular на страницах, например, ngOnDestroy
(я использовал его для удаления всех подписей со страницы, когда эта страница будет уничтожена), но, как вы сказали, ionViewWillUnload
, кажется, правильный способ сделать это, если мы хотим использовать перехватчики жизненного цикла Ionic.
Я предполагаю, что большинство хостов жизненного цикла Ionic больше связаны с тем, как пользователь взаимодействует со страницей в целом (войдет на страницу, покинет страницу, может войти в страница, может покинуть страницу...) и Angular крючки жизненного цикла больше связаны с разными этапами жизни одного компонента (входы были инициализированы, детектор изменений если там, где изменения в этом компоненте...), которые, как вы можете видеть, не могут быть непосредственно связаны с взаимодействием с пользователем вообще, и обычно это вещи, о которых пользователь не знает.
Я уверен, что нет правила, какой подход лучше, но самое главное - последовательность. Я думаю, что имеет смысл использовать Ionic привязки жизненного цикла в компонентах, которые являются страницами, и использовать крючки жизненного цикла Angular внутри вложенных компонентов, но вы можете использовать другой подход, если вы это делаете последовательно во всем приложении.