首页 > 解决方案 > 如何在 Sapper 中离开父布局?

问题描述

目前,我正在开发一个项目,该项目Menu在除两个页面之外的所有页面上共享一个组件。_layout.svelte我在根文件中添加了菜单组件。现在因为不需要Menu组件的两个页面是嵌套路由。由于Menu它们是子路线,因此它们出现在它们内部。他们被设计成这样。但我认为应该有一些方法可以选择退出/离开父布局。否则我将不得不删除_layout.svelte根文件并将Menu组件添加到每条路线,这对 DRY 来说太过分了。有没有办法让父母留_layout.svelte在 Sapper?

标签: javascriptlayoutparentsappersvelte-3

解决方案


usingchild.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}

推荐阅读