Angular 9 - 在另一个选项卡中打开 routerLink 是否会创建第二个应用程序实例?
Angular 9 - Does opening a routerLink in another tab create a second application instance?
假设我有一个 <a routerLink="/foo">
标签,其中 /foo
被路由到 FooPageComponent
,它将内容呈现到 AppComponent
的 <router-outlet />
中。如果我Ctrl+左键单击这个link,/foo
将在秒内打开选项卡。这是否意味着它将成为我的单页应用程序独立的第二个实例?
我知道第二个页面使用相同的服务器,localStorage等,所以它不是完全独立的。但它会拥有自己的全局对象实例(如路由器、单例服务等)吗?它也会 运行 APP_INITIALIZER
代码吗?
一般来说,在单页应用程序的情况下,让用户在新选项卡中打开页面是好的做法,还是最好留在同一选项卡中,并使用例如弹出窗口而不是新选项卡?
答案是肯定的,它将创建一个全新的应用程序实例,然后重新运行 APP_INITIALIZER
。
关于你的第二个问题,没有更好的练习,这取决于你想要达到什么。
假设我有一个 <a routerLink="/foo">
标签,其中 /foo
被路由到 FooPageComponent
,它将内容呈现到 AppComponent
的 <router-outlet />
中。如果我Ctrl+左键单击这个link,/foo
将在秒内打开选项卡。这是否意味着它将成为我的单页应用程序独立的第二个实例?
我知道第二个页面使用相同的服务器,localStorage等,所以它不是完全独立的。但它会拥有自己的全局对象实例(如路由器、单例服务等)吗?它也会 运行 APP_INITIALIZER
代码吗?
一般来说,在单页应用程序的情况下,让用户在新选项卡中打开页面是好的做法,还是最好留在同一选项卡中,并使用例如弹出窗口而不是新选项卡?
答案是肯定的,它将创建一个全新的应用程序实例,然后重新运行 APP_INITIALIZER
。
关于你的第二个问题,没有更好的练习,这取决于你想要达到什么。