你好,我是Svelte,Sapper和Express的新手。
问题:
我正在使用Sappers _layout.html来显示应该在所有页面上显示的2个组件(标题和菜单),除了登录页面。
实现此目标的正确方法是什么?
可能的解决方案:
A)从静态文件夹提供登录页面,并使用快速中间件路由到它吗?
B)将登录名作为我项目的根目录,并将所有其他路由下移一个级别,以便它们可以共享一个不涉及登录页面的通用布局吗?
C)在布局中放置if语句,并确定用户何时在登录页面上隐藏标题和菜单组件。
D)不使用布局显示组件。
答案 0 :(得分:0)
我对此问题的首选解决方案是选项C -使用child.segment
控制使用哪种布局:
<!-- src/routes/_layout.html -->
{#if child.segment === 'login'}
<svelte:component this={child.component} {...child.props}/>
{:else}
<div class="fancy-layout">
<svelte:component this={child.component} {...child.props}/>
</div>
{/if}