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

TODO ストアのエクササイズへのリンク

先に学んだように、Svelteストアは、個々のコンポーネントに属さないデータを格納する場所です。

SvelteKitは、`$app/stores`モジュールを介して、`page`、`navigating`、`updated`の3つの読み取り専用ストアを提供します。最も頻繁に使用するものは`page`であり、現在のページに関する情報を提供します。

  • `url` — 現在のページのURL
  • `params` — 現在のページのパラメータ
  • `route` — 現在のルートを表す`id`プロパティを持つオブジェクト
  • `status` — 現在のページのHTTPステータスコード
  • `error` — 現在のページのエラーオブジェクト(もしあれば)(エラー処理については後ほどのエクササイズで詳しく説明します)
  • `data` — すべての`load`関数の戻り値を組み合わせた、現在のページのデータ
  • `form` — フォームアクションから返されたデータ

他のストアと同様に、`$`記号を名前の前に付けることで、コンポーネント内でその値を参照できます。たとえば、現在のパス名は`$page.url.pathname`としてアクセスできます。

src/routes/+layout
<script>
	import { page } from '$app/stores';

	let { children } = $props();
</script>

<nav>
	<a href="/" aria-current={$page.url.pathname === '/'}>
		home
	</a>

	<a href="/about" aria-current={$page.url.pathname === '/about'}>
		about
	</a>
</nav>

{@render children()}

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

1
2
3
<h1>home</h1>
<p>this is the home page.</p>