Angular маршрутизация - сохранение состояния компонента при изменении маршрута - PullRequest
1 голос
/ 02 марта 2020

Я реализовал отложенную загрузку в своем приложении angular, но если я переключаю страницы, ранее загруженная страница go возвращается в исходное состояние (ngOnInit снова запускается)

{ path: '/posts', loadChildren: () => import('./posts/main.module').then(m => m.MainModule) }

1 Ответ

2 голосов
/ 02 марта 2020

Это поведение не имеет ничего общего с отложенной загрузкой.

Когда компонент больше не используется в DOM, Angular запускает процесс очистки. Для этого он выполняет метод "ngOnDestroy" компонента (если есть). После того, как компоненту удастся выполнить очистку (или сохранить данные), он будет уничтожен.

Поэтому, когда этот же компонент снова добавляется в DOM, его новый экземпляр и "ngOnInit" выполняются. снова.

Вы можете попробовать это с простым "* ngIf". Поскольку ngIf удалит и добавит компонент из DOM в зависимости от оператора if.
Если вы используете «hide», то компонент не будет показан, но все равно будет частью DOM, поэтому экземпляр остается прежним.

В вашем случае компонент помещается и удаляется маршрутизатором ...

...