Bases de Svelte
Introduction
Liaisons
Classes et styles
Svelte avancé
Réutiliser du contenu
Mouvements
Liaisons avancées
Transitions avancées
API de contexte
Éléments spéciaux
<script module>
Next steps
Bases de SvelteKit
Introduction
Routing
Chargement de données
En-têtes et cookies
Modules partagés
Formulaires
$app/state
Erreurs et redirections
SvelteKit avancé
Options de page
Options de lien
Routing avancé
Chargement avancé
Variables d’environnement
Conclusion
L’objet navigating
représente la navigation courante. Lorsqu’une navigation commence — suite à un
clic sur un lien, l’utilisation des boutons précédent/suivant, ou l’utilisation programmatique de
goto
— la valeur de navigating
devient un objet avec les propriétés suivantes :
from
etto
— des objets avec les propriétésparams
,route
, eturl
type
— le type de navigation, par ex.link
,popstate
ougoto
Pour des informations plus complètes sur le type, voir la documentation de
Navigation
.
Il peut être utilisé pour afficher un indicateur de chargement lors des navigations longues. Dans
cet exercice, src/routes/+page.server.js
et src/routes/about/+page.server.js
ont toutes les deux
un délai artificiel. Dans src/routes/+layout.svelte
, importez l’objet navigating
et ajoutez un
message dans la barre de navigation :
<script>
import { page, navigating } from '$app/state';
let { children } = $props();
</script>
<nav>
<a href="/" aria-current={page.url.pathname === '/'}>
accueil
</a>
<a href="/about" aria-current={page.url.pathname === '/about'}>
à propos
</a>
{#if navigating.to}
en cours de navigation vers {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 === '/'}>
accueil
</a>
<a href="/about" aria-current={page.url.pathname === '/about'}>
à propos
</a>
{#if navigating.to}
en cours de navigation vers {navigating.to.url.pathname}
{/if}
</nav>
{@render children()}
Avant SvelteKit 2.12, vous deviez utiliser
$app/stores
pour cela, qui fournit un store$page
contenant les mêmes informations. Si vous utilisez actuellement$app/stores
, nous vous conseillons de migrer vers$app/state
(ce qui requiert Svelte 5).
<h1>accueil</h1>
<p>ceci est la page d'accueil.</p>