跳至主要內容

您的應用程式的不同路由通常會共享通用 UI。 我們可以使用 +layout.svelte 元件來套用至相同目錄中的所有路由,而無需在每個 +page.svelte 元件中重複它。

在此應用程式中,我們有兩個路由,src/routes/+page.sveltesrc/routes/about/+page.svelte,其中包含相同的導覽 UI。 讓我們建立一個新檔案,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>