Здравствуйте, я новичок в Svelte, Sapper & Express.
Проблема:
Я использую Sappers _layout.html для отображения 2 компонентов (заголовок и меню), которые должны отображаться на всех страницах, за исключением страницы входа.
Как правильно этого добиться?
Возможные решения:
A) Обслуживать страницу входа из статической папки и использовать промежуточное ПО для маршрутизации к ней?
Б) Использовать логин как корень моего проекта и переместить все остальные маршруты на уровень ниже, чтобы они могли использовать общий макет, не связанный со страницей входа?
C) Поместите оператор if в макет и определите, когда пользователь находится на странице входа, чтобы скрыть компоненты заголовка и меню.
Г) Не использовать макет для отображения компонентов.
Мое предпочтительное решение этой проблемы - вариант 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}