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
navigatingオブジェクトは、現在のナビゲーションを表します。リンクのクリック、戻る/進むナビゲーション、またはプログラムによる goto の呼び出しによってナビゲーションが開始されると、 navigating の値は以下のプロパティを持つオブジェクトになります。
fromとto—params、route、urlプロパティを持つオブジェクトtype— ナビゲーションのタイプ。 例:link,popstate、goto
型の完全な情報は、
Navigationドキュメントにあります。
これは、時間のかかるナビゲーション中にローディングインジケーターを表示するために使えます。この演習では、 src/routes/+page.server.js と src/routes/about/+page.server.js にわざと遅延が設定されています。 src/routes/+layout.svelteに navigating オブジェクトをインポートし、ナビゲーションバーにメッセージを追加してください。
src/routes/+layout
<script>
import { page, navigating } 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>
{#if navigating.to}
navigating to {navigating.to.url.pathname}
{/if}
</nav>
{@render children()}<script lang="ts">
import { page, navigating } 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>
{#if navigating.to}
navigating to {navigating.to.url.pathname}
{/if}
</nav>
{@render children()}SvelteKit 2.12より前は、
$app/storesが提供する$navigatingstoreが同じ役割を担っていました。いま$app/storesを使っている場合は、$app/stateへの移行をおすすめします。(Svelte 5が必要です。)
1
2
3
<h1>home</h1>
<p>this is the home page.</p>