Willkommen
Kurz gesagt: Der Kurs „Web-Oberflächen“ lehrt HTML, CSS und das DOM, danach Komponenten, Zustand und Daten mit React oder Vue, mit Beispielen, die direkt in der Seite laufen.
Problem
Das Programm stimmt. Die Kunden beschweren sich
Die Summe des Warenkorbs stimmt, und die Tests laufen durch. Aber auf dem Handy ist der Button „Bestellen“ außerhalb des Bildschirms. Wer einen Screenreader benutzt, hört nur „Button“ und weiß nicht, welcher. Die Produktliste friert beim Laden ein, und bei einem schnellen Doppelklick geht die Bestellung zweimal raus.
Menschen sehen das Programm durch einen Bildschirm. Wenn der Bildschirm kaputtgeht, funktioniert das Programm nicht, egal wie richtig es darunter ist. Dieser Kurs lehrt, wie man den Bildschirm baut.
Die Idee
Wie der Browser eine Seite zeigt
- Der Browser fragt den Server nach der Seite und bekommt HTML: Text, der sagt, was auf ihr steht.
- Aus dem HTML baut er einen Baum aus den Elementen: eine Überschrift, einen Absatz, einen Button. Dieser Baum heißt DOM.
- Er wendet CSS an: die Regeln für Farbe, Größe und Anordnung. Er berechnet, wohin jedes Element kommt, und zeichnet es.
- JavaScript verändert den Baum: Es fügt der Liste ein Produkt hinzu, ändert den Text eines Buttons. Der Browser zeichnet nur neu, was betroffen ist.
Der ganze Kurs handelt von diesen vier Schritten. Zuerst machst du sie von Hand, und dann siehst du, wie React und Vue den vierten für dich übernehmen.
Die Idee
Die Sandbox
Der Code in den Lektionen läuft direkt in der Seite. Probier es aus: Klick auf „Ausführen“, dann auf den Button in der Seite darunter. Ändere den Text in script.js und führ den Code noch einmal aus.
Konsole
- Die Dateien sind in Tabs:
index.html,style.css,script.js, später auch die Komponenten. Strg+Enter (⌘+Enter auf dem Mac) führt den Code aus, und „Code zurücksetzen“ bringt das Beispiel zurück. - Die Konsole steht unter der Seite: Dort sind
console.logund die Fehler. - Die Sandbox ist abgeschottet. Der Code sieht die Seite, ihre Cookies und ihren Speicher nicht und hat kein Netz. Auf
fetch('/api/…')antwortet eine Schein-API mit den Daten des Shops, und die Lektionen schalten absichtlich eine langsame Antwort, einen Fehler oder eine leere Liste ein. - Aufgaben werden am Verhalten geprüft. „Prüfen“ klickt die Buttons an und tippt in die Felder wie ein Mensch und sucht die Elemente nach Rolle und Name, so wie ein Screenreader sie findet. Ein Button ohne Namen wird nicht gefunden, deshalb prüft die Aufgabe auch die Barrierefreiheit.
- Eine Endlosschleife im Code bringt den Browser-Tab zum Stehen. Lad dann die Seite neu: Dein Code ist gespeichert.
Die Idee
Die zwei Teile
Der erste Teil ist die Plattform: HTML, CSS und das DOM. Sie ist für React und Vue dieselbe, deshalb sind Text und Code auf beiden Seiten gleich.
- Die Struktur der Seite: Elemente und der Baum, Text und Links, Formulare, Barrierefreiheit.
- Wie sie aussieht: die Kaskade, die Boxen, Flexbox, Grid, eine Seite fürs Handy.
- JavaScript in der Seite: das DOM, Ereignisse, eine Liste aus Daten, Daten aus einer API.
Der zweite Teil sind Komponenten: warum es bei einer großen Oberfläche schiefgeht, das DOM von Hand zu ändern, und wie die Oberfläche zu einer Funktion der Daten wird.
- Komponenten, Zustand, Effekte, Daten und Formulare, Eine ganze App (Routing, Geschwindigkeit, Tests, ein echtes Projekt).
- Projekt: Das Schaufenster des Shops: Katalog, Warenkorb und Bestellung in einer App.
Die Idee
React oder Vue
Die beiden Bibliotheken lösen dieselbe Aufgabe: Du beschreibst, wie die Oberfläche für bestimmte Daten aussieht, und die Bibliothek aktualisiert die Seite, wenn sich die Daten ändern. Hier ist derselbe Warenkorb in beiden:
Konsole
Wir stellen sie nicht in eine Rangliste. Die Ideen sind dieselben, der Unterschied liegt in der Schreibweise: React ist JavaScript mit HTML darin, Vue ist ein HTML-Template mit JavaScript darin. Wähl eine mit „Bibliothek:“ über der Lektion und wechsle jederzeit. Wenn du nicht weißt, welche: Schau, was die Firmen benutzen, bei denen du arbeiten möchtest. Wenn du die eine kennst, lernst du die andere in wenigen Tagen. Es gibt auch andere (Angular, Svelte, Solid). Sie beruhen auf denselben Ideen.
Die Idee
Was du wissen musst
Von JavaScript brauchst du Funktionen, Objekte und Arrays mit map und filter, Module mit import und async/await: der Kurs JavaScript bis „Modernes JavaScript“. Wo eine Lektion etwas daraus benutzt, verweist sie darauf.
Im Browser musst du nichts installieren. Für ein eigenes Projekt außerhalb der Sandbox brauchst du Node.js, einen Editor (zum Beispiel VS Code) und Vite, das ein leeres Projekt anlegt:
npm create vite@latest shop -- --template reactcd shopnpm installnpm run devDiese Befehle laufen hier nicht. Wie ein echtes Projekt aussieht, zeigt die letzte Lektion von „Eine ganze App“.
Test