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
Dans cet exercice, nous avons oublié de passer dans App.svelte
la prop name
attendue par
PackageInfo.svelte
, ce qui implique que l’élément <code>
est vide et que le lien vers npm est
cassé.
Nous pourrions corriger cela en ajoutant la prop...
App
<PackageInfo
name={pkg.name}
version={pkg.version}
description={pkg.description}
website={pkg.website}
/>
... mais puisque les propriétés de pkg
correspondent aux props attendues par le composant, nous
pouvons à la place les ‘étaler’ sur le composant :
App
<PackageInfo {...pkg} />
À l’inverse, dans
PackageInfo.svelte
nous pouvons obtenir un objet contenant toutes les props qui lui sont passées en utilisant la propriété de reste...let { name, ...stuff } = $props();
...ou en ne déstructurant pas du tout :
let stuff = $props();
... et dans ce cas vous pouvez accéder aux propriétés via leur path :
console.log(stuff.name, stuff.version, stuff.description, stuff.website);
Modifier cette page sur Github
précédent suivant
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script>
import PackageInfo from './PackageInfo.svelte';
const pkg = {
name: 'svelte',
version: 5,
description: 'rapide comme l\'éclair',
website: 'https://sveltefr.dev'
};
</script>
<PackageInfo
version={pkg.version}
description={pkg.description}
website={pkg.website}
/>