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()}SvelteKit 2.12より前は、
$app/storesが提供する$pagestoreが同じ役割を担っていました。いま$app/storesを使っている場合は、$app/stateへの移行をおすすめします。(Svelte 5が必要です。)
previous next
1
2
3
<h1>home</h1>
<p>this is the home page.</p>