从_layout排除页面

时间:2018-11-27 07:52:52

标签: svelte

你好,我是Svelte,Sapper和Express的新手。

问题:
我正在使用Sappers _layout.html来显示应该在所有页面上显示的2个组件(标题和菜单),除了登录页面。

实现此目标的正确方法是什么?

可能的解决方案:
A)从静态文件夹提供登录页面,并使用快速中间件路由到它吗?

B)将登录名作为我项目的根目录,并将所有其他路由下移一个级别,以便它们可以共享一个不涉及登录页面的通用布局吗?

C)在布局中放置if语句,并确定用户何时在登录页面上隐藏标题和菜单组件。

D)不使用布局显示组件。

1 个答案:

答案 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}