7

您好,我是 Svelte、Sapper & Express 的新手。

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

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

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

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

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

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

4

1 回答 1

7

我对这个问题的首选解决方案是选项 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}
于 2018-11-27T13:17:24.847 回答