Angular 9 - Открытие routerLink на другой вкладке создает второй экземпляр приложения? - PullRequest
1 голос
/ 08 мая 2020

Предположим, у меня есть тег <a routerLink="/foo">, где /foo перенаправляется на FooPageComponent, который отображает содержимое в <router-outlet /> из AppComponent. Если я Ctrl + Щелкните левой кнопкой мыши по этой ссылке, /foo будет открыт на второй вкладке . Означает ли это, что это будет независимый, второй экземпляр моего одностраничного приложения ?

Я знаю, что вторая страница использует тот же сервер, localStorage et c., Так что это не полностью независимый. Но будут ли у него собственные экземпляры глобальных объектов (например, маршрутизатор, одноэлементные службы и т. Д. c.)? Будет ли он также запускать код APP_INITIALIZER?

В целом, является ли хорошей практикой в ​​случае одностраничных приложений разрешать пользователям открывать страницы в новых вкладках или лучше оставаться на той же вкладке, и использовать, например, всплывающие окна вместо новых вкладок?

1 Ответ

2 голосов
/ 08 мая 2020

Ответ - да, он создаст совершенно новый экземпляр вашего приложения и перезапустит APP_INITIALIZER.

А что касается вашего второго вопроса, нет лучшей практики, это зависит от того, что вы хочу достичь.

...