Basic Svelte
Bindings
Classes and styles
Advanced Svelte
Advanced reactivity
Motion
Advanced bindings
Advanced transitions
Context API
Special elements
<script module>
Next steps
Basic SvelteKit
Introduction
Routing
Loading data
Headers and cookies
Shared modules
API routes
$app/state
Errors and redirects
Advanced SvelteKit
Page options
Link options
Advanced routing
Advanced loading
Environment variables
Conclusion
SvelteKit では、3つの読み取り専用 state オブジェクトを $app/state
モジュールから使用できます — page
、navigating
、updated
です。もっとも多く使用することになるのは page
で、これは現在のページに関する情報を取得することができます:
url
— 現在のページの URLparams
— 現在のページのパラメータroute
— 現在のルート(route)を表すid
プロパティを持つオブジェクトstatus
— 現在のページの HTTP ステータスコードerror
— 現在のページのエラーオブジェクト (エラーが存在する場合。以降の演習でエラーハンドリングを学習する予定です)data
— 現在のページの data。全てのload
関数からの戻り値が足されたものform
— form action から返されるデータ
これらの各プロパティはリアクティブで、内部的には $state.raw
が使用されています。これは page.url.pathname
を使用する例です:
src/routes/+layout
<script>
import { page } from '$app/state';
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()}
<script lang="ts">
import { page } from '$app/state';
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()}
Prior to SvelteKit 2.12, you had to use
$app/stores
for this, which provides a$page
store with the same information. If you’re currently using$app/stores
, we advise you to migrate towards$app/state
(requires Svelte 5).
previous next
1
2
3
<h1>home</h1>
<p>this is the home page.</p>