如何在基于Vite的Svelte/Kit中重置指定路由的布局?
解决SvelteKit路由布局重置问题
我刚好碰到过这个问题!你试的几种写法都是SvelteKit旧版本的用法,现在的布局重置规则已经更新了,正确的实现方式其实很简单:
- 在
/routes/auth/login目录下创建一个+layout.svelte文件 - 在这个文件中添加以下代码:
<script> // 导出layout: false来禁用父布局继承 export let layout = false; </script> <!-- 这里可以放login路由专属的布局结构,如果不需要额外布局,只留<slot />即可 --> <slot />
为什么你之前的方法不生效?
- 直接使用
+layout.svelte但不导出layout: false时,SvelteKit默认会让该布局继承上层的主布局,所以会出现嵌套的情况 +layout@.svelte是SvelteKit 1.0版本之前的旧写法,现在已经被废弃,自然不会生效+layout.reset.svelte违反了SvelteKit的文件命名规则,+开头的文件只能是框架预定义的类型(比如+page.svelte、+layout.svelte等),所以会触发错误提示
如果你的登录页面不需要任何额外布局,只需要渲染页面本身的内容,那上面的+layout.svelte里只保留<slot />就足够了,页面内容会直接渲染,完全不会使用主布局。
内容的提问来源于stack exchange,提问作者Julian
相关产品推荐
相关产品推荐

