メインコンテンツへスキップ

アプリのさまざまなルートは、多くの場合、共通のUIを共有します。各+page.svelteコンポーネントでそれを繰り返す代わりに、同じディレクトリのすべてのルートに適用される+layout.svelteコンポーネントを使用できます。

このアプリには、同じナビゲーションUIを含む2つのルート、src/routes/+page.sveltesrc/routes/about/+page.svelteがあります。新しいファイルsrc/routes/+layout.svelteを作成しましょう...

src/routes/
├ about/
│ └ +page.svelte
├ +layout.svelte
└ +page.svelte

…そして、+page.svelteファイルから重複したコンテンツを新しい+layout.svelteファイルに移動します。{@render children()}タグは、ページコンテンツがレンダリングされる場所です。

src/routes/+layout
<script>
	let { children } = $props();
</script>

<nav>
	<a href="/">home</a>
	<a href="/about">about</a>
</nav>

{@render children()}

+layout.svelteファイルは、兄弟の+page.svelte(存在する場合)を含むすべての子ルートに適用されます。レイアウトは任意の深さにネストできます。

GitHubでこのページを編集する

1
2
3
4
5
6
7
8
<nav>
	<a href="/">home</a>
	<a href="/about">about</a>
</nav>
 
<h1>home</h1>
<p>this is the home page.</p>