Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Exercice : Création d'une Application Todo
Objectifs
- Créer une application de gestion de tâches complète
- Utiliser les concepts JavaScript avancés
- Implémenter la persistance des données
- Gérer les interactions utilisateur
Prérequis
- Connaissance des variables, tableaux et fonctions
- Compréhension des événements JavaScript
- Notions de base en HTML/CSS
Instructions
Créez une application de gestion de tâches avec les fonctionnalités suivantes :
- Ajouter une nouvelle tâche
- Marquer une tâche comme terminée
- Supprimer une tâche
- Filtrer les tâches (toutes, actives, terminées)
- Sauvegarder les tâches dans le localStorage
- Afficher le nombre de tâches restantes
Structure HTML
<div class="todo-app">
<h1>Todo List</h1>
<div class="add-todo">
<input type="text" id="new-todo" placeholder="Ajouter une tâche...">
<button id="add-button">Ajouter</button>
</div>
<div class="filters">
<button class="filter active" data-filter="all">Toutes</button>
<button class="filter" data-filter="active">Actives</button>
<button class="filter" data-filter="completed">Terminées</button>
</div>
<ul id="todo-list"></ul>
<div class="todo-stats">
<span id="remaining-count">0 tâches restantes</span>
</div>
</div>
Indices
- Utilisez un tableau pour stocker les tâches
- Chaque tâche peut être un objet avec les propriétés :
- id (unique)
- text (contenu de la tâche)
- completed (état)
- Utilisez
localStorage
pour la persistance - Implémentez les fonctions suivantes :
addTodo(text)
toggleTodo(id)
deleteTodo(id)
filterTodos(filter)
updateRemainingCount()
Validation
Votre application doit :
- Permettre l'ajout de nouvelles tâches
- Permettre de marquer les tâches comme terminées
- Permettre la suppression des tâches
- Filtrer correctement les tâches
- Persister les données entre les rechargements
- Afficher le nombre correct de tâches restantes
Ressources supplémentaires
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content