【解决方案1】:

我看到的明显的快速修复是在 App.svelte 中的 bodyID 上使用 #if 块,其中包含两个组件 MainApp(App.svelte 的内容)和 LauncherApp,然后根据您使用的模式简单地更改 bodyID是。

在使用 sveltekit 时,我认为将 LauncherApp 视为单独的路线是有意义的(我相信这是使用 sveltekit 实现“分离”页面的唯一方法,尽管我不是 100%)。因此,当打开一个新窗口时,您将应用程序的新实例导航到 LauncherApp 路由。如果您不想要与主应用中相同的基本布局,您可以添加一个__layout.reset.svelte 文件。

我不知道为什么您的解决方案不起作用,它非常优雅。

【讨论】:

  • 感谢您的回复!是的,在App.svelte 文件中使用#if 方法,但对我来说这似乎很“骇人听闻”。 Re:SvelteKit:可悲的是,我对 Svelte(Kit) 很陌生,不知道如何使用新路由打开一个新实例(然后来回传递数据)。
  • 不客气!这么多年过去了,很高兴回馈社会。我完全同意这种感觉。试试看!我不会说学习曲线比 svelte 高,它是一个线性斜率。我认为您只需要以编程方式导航(sveltekit 中的标准功能)到该路线并且路线有据可查。