Construire une application Todo complète qui combine tous les concepts vus dans le cours :
ThemeProvider (Context — leçon 13)
└── App (state principal — leçon 5/11)
├── Header (props — leçon 4)
├── TodoForm (formulaire contrôlé — leçon 10, useRef — leçon 12)
├── TodoFilters (événements — leçon 6)
├── TodoList (listes/clés — leçon 8)
│ └── TodoItem (rendu conditionnel — leçon 7, props — leçon 4)
└── Footer (props — leçon 4)
Ce projet utilise tous les concepts vus dans les 14 leçons précédentes :
| Concept | Utilisé dans |
|---|---|
| Composants fonctionnels | Header, TodoForm, TodoItem, TodoList, Footer |
| Props | Tous les composants enfants |
| useState | App (todos, filter), TodoForm (text, priority), TodoItem (editing) |
| Événements | onClick, onChange, onSubmit, onDoubleClick, onKeyDown |
| Rendu conditionnel | TodoItem (mode édition), filtres, liste vide |
| Listes & clés | TodoList (.map avec key), filtres (.filter) |
| useEffect | useLocalStorage (persistence), focus auto |
| Formulaires contrôlés | TodoForm, TodoItem (édition) |
| Lifting State Up | App détient le state, passe aux enfants |
| useRef | Focus auto input (TodoForm, TodoItem) |
| useContext | Thème global (couleurs) dans tous les composants |
| Custom Hooks | useLocalStorage pour persister todos et thème |
Tu maîtrises maintenant les fondamentaux de React. Pour aller plus loin :