Zum Abschluss baust du eine komplette kleine Anwendung, in der fast alles aus dem Kurs steckt: DOM, Events, Formulare, Arrays, JSON und localStorage. Du kannst den Code direkt ausführen und verändern.
Die Anforderungen
- Aufgaben hinzufügen (Enter oder Button)
- Aufgaben abhaken und löschen
- Filter: alle, offen, erledigt
- Zähler der offenen Aufgaben
- Daten bleiben nach dem Neuladen erhalten
Der komplette Code
Ergebnis
Was du hier wiedererkennst
| Baustein | Wo |
|---|---|
| Arrays und Objekte | aufgaben ist ein Array von Objekten |
filter, find, push | Aufgaben auswählen, suchen, hinzufügen |
| DOM erzeugen | createElement, append, replaceChildren |
| Events und Delegation | ein Klick-Listener für Checkbox und Löschen |
| Formular | submit mit preventDefault, trim, Validierung |
JSON und localStorage | Speichern und sicheres Laden mit try/catch |
| Barrierefreiheit | aria-label, aria-pressed, role="status", echte Buttons |
| Sicherheit | textContent statt innerHTML |
Die Logik vom Rest trennen
Der Kern lässt sich ohne Browser testen. Trenne Daten und Darstellung:
Ergebnis
[
{ id: 1, text: 'Milch kaufen', fertig: true },
{ id: 2, text: 'Kurs abschließen', fertig: false }
]
1 offenReine Funktionen wie diese kannst du mit node --test leicht prüfen.
Ideen zum Weiterbauen
- Aufgaben per Doppelklick bearbeiten
- Fälligkeitsdatum mit
<input type="date">und Sortierung - Drag and Drop zum Umsortieren (
draggable, Ereignissedragstart,drop) - Alle erledigten Aufgaben auf einmal löschen
- Daten über
fetchmit einem Server abgleichen - Dunkles Design über
prefers-color-scheme - Tastaturkürzel (zum Beispiel
/fokussiert das Eingabefeld)
Merke
- Ein kleines Projekt verbindet Daten, Darstellung und Ereignisse
- Zustand (Array) ändern, danach neu zeichnen: ein einfaches, robustes Muster
- Event Delegation,
textContent,try/catchbeim Speichern und ARIA-Attribute gehören zur Grundausstattung - Trenne reine Logik von DOM-Code, damit du sie testen kannst
Aufgabe
Erweitere die App um eine Schaltfläche "Erledigte löschen" und einen Zähler der erledigten Aufgaben.