загружен или выгружен - это события, запускаемые при просмотре {N}. Это базовый компонент, унаследованный любым другим компонентом в фреймворке. Событие loaded
запускается при создании нижележащего собственного представления, а unloaded
чаще всего происходит при его уничтожении или удалении с экрана.
Ваш Page
(любой компонент, назначенный для пути маршрута, обернут страницей в Angular), является фрагментом. Пока вы перемещаетесь вперед с page-router-outlet
, ваша текущая страница помещается в задний стек (историю). Событие unloaded
также может быть вызвано в этот момент, но это не обязательно означает, что вы должны отписаться. Поскольку компонент все еще жив в обратном стеке, при переходе назад в обратном направлении loaded
будет запущен снова.
Я бы предложил вам просто придерживаться ngOnInit
, чтобы подписаться, и ngOnDestroy
, чтобы отписаться от чего-либо, просто как Angular в сети. Вы должны использовать loaded
событие просмотра только в тех случаях, когда вам необходимо получить доступ к элементам пользовательского интерфейса / его основному компоненту. Но помните, что это событие вызывается каждый раз, когда страница загружается, что включает в себя обратную навигацию, как обсуждалось выше. Поэтому вы можете захотеть удалить загруженный прослушиватель, как только закончите, чтобы он не выполнялся снова при обратной навигации.
Также это не повлияет на производительность, если вы оставите подписки активными, когда компонент ставится на задний стек. Я считаю, что родной вид не обновляется, если он не активен. Но вы можете отказаться от подписки в тех случаях, когда вы выполняете какие-либо тяжелые операции на контроллере, такие как тяжелые математические операции или длинные циклы и т. Д. c. Это полностью зависит от того, что вы делаете в своей подписке.