Ce projet consiste à créer une application de gestion de tâches (ToDo List) en utilisant SvelteKit. Les utilisateurs doivent se baser sur une maquette Figma pour réaliser l'interface utilisateur. L'application permet d'ajouter, modifier, et supprimer des tâches, tout en stockant les données localement dans le navigateur.
Avant de commencer, assurez-vous d'avoir les éléments suivants installés sur votre machine :
Pour créer un nouveau projet Svelte avec Vite, utilisez la commande suivante :
npm create vite@latest my-svelte-app -- --template svelte
N'hésitez pas à consulter la documentation officielle et à expérimenter avec les exemples disponibles sur leur site.
Svelte est un framework JavaScript moderne qui compile les composants en code JavaScript optimisé, ce qui améliore les performances. Cette documentation couvre les méthodes et fonctionnalités les plus courantes pour vous aider à utiliser Svelte efficacement.
Pour utiliser un composant dans un autre fichier, vous devez l'importer comme suit :
<script>
import MyComponent from './MyComponent.svelte';
</script>
Pour rendre une variable disponible pour les composants parents, utilisez export :
<script>
export let name = 'John Doe';
</script>
<p>Hello, {name}!</p>
<script>
let count = 0;
function increment() {
count += 1;
}
</script>
<button on:click={increment}>Count: {count}</button>
Utilisez $: pour créer des calculs réactifs basés sur d'autres variables :
<script>
let a = 1;
let b = 2;
$: sum = a + b;
</script>
<p>Sum: {sum}</p>
Affiche du contenu conditionnellement :
<script>
let show = true;
</script>
{#if show}
<p>This will be shown if `show` is true.</p>
{/if}
Itère sur une liste d'éléments :
<script>
let items = ['Item 1', 'Item 2', 'Item 3'];
</script>
<ul>
{#each items as item}
<li>{item}</li>
{/each}
</ul>
Gère les promesses et les états de chargement :
<script>
let promise = fetch('https://api.example.com/data').then(res => res.json());
</script>
{#await promise}
<p>Loading...</p>
{:then data}
<p>Data: {data}</p>
{:catch error}
<p>Error: {error.message}</p>
{/await}
Lie la valeur d'un champ de formulaire à une variable :
<script>
let name = '';
</script>
<input bind:value={name} placeholder="Enter your name" />
<p>Your name is {name}</p>
Lie un ensemble de cases à cocher à une variable :
<script>
let selected = [];
</script>
<label>
<input type="checkbox" bind:group={selected} value="Option 1"> Option 1
</label>
<label>
<input type="checkbox" bind:group={selected} value="Option 2"> Option 2
</label>
<p>Selected options: {selected.join(', ')}</p>
Déclenche une fonction lorsqu'un événement se produit :
<script>
function handleClick() {
alert('Button clicked!');
}
</script>
<button on:click={handleClick}>Click me</button>
Émet des événements personnalisés à un composant parent :
<script>
import { createEventDispatcher } from 'svelte';
const dispatch = createEventDispatcher();
function notify() {
dispatch('customEvent', { detail: 'Data from child' });
}
</script>
<button on:click={notify}>Send Event</button>
Accède aux données passées avec un événement personnalisé :
<script>
function handleCustomEvent(event) {
console.log(event.detail);
}
</script>
<ChildComponent on:customEvent={handleCustomEvent} />
Crée un store modifiable :
<script>
import { writable } from 'svelte/store';
const count = writable(0);
function increment() {
count.update(n => n + 1);
}
</script>
<button on:click={increment}>Increment</button>
<p>{$count}</p>
Crée un store en lecture seule :
<script>
import { readable } from 'svelte/store';
const time = readable(new Date(), set => {
const interval = setInterval(() => set(new Date()), 1000);
return () => clearInterval(interval);
});
</script>
<p>The current time is {$time.toLocaleTimeString()}</p>
Exécute une fonction lorsque le composant est monté dans le DOM :
<script>
import { onMount } from 'svelte';
onMount(() => {
console.log('Component mounted!');
});
</script>
Exécute des fonctions avant et après que le composant soit mis à jour :
<script>
import { beforeUpdate, afterUpdate } from 'svelte';
beforeUpdate(() => {
console.log('Before update');
});
afterUpdate(() => {
console.log('After update');
});
</script>
Exécute une fonction lorsque le composant est détruit :
<script>
import { onDestroy } from 'svelte';
onDestroy(() => {
console.log('Component destroyed');
});
</script>