HTML mit React
HTML mit React ist die Kombination aus der soliden Struktur von HTML und der dynamischen Funktionalität von React. HTML bildet dabei das Fundament und die Wände eines Hauses, während React wie die flexible Einrichtung und Dekoration fungiert, die sich jederzeit verändern lässt. Zusammen ermöglichen sie die Erstellung moderner, interaktiver Webanwendungen, die schnell reagieren und sich einfach pflegen lassen.
Diese Technik ist besonders wertvoll für verschiedene Projekttypen:
- Portfolio-Websites können Besucher dynamisch begrüßen oder Projekte filtern.
- Blogs laden neue Kommentare nach, ohne die gesamte Seite neu zu laden.
- E-Commerce-Seiten aktualisieren Lagerbestände oder Warenkörbe in Echtzeit.
- Nachrichtenseiten können Live-Feeds bereitstellen.
- Soziale Plattformen zeigen neue Beiträge sofort an.
In dieser Referenz lernen Sie, wie man HTML effektiv mit React über JSX verbindet, Komponenten erstellt und wiederverwendet und interaktive Elemente für komplexe Websites baut. Wir vergleichen diesen Prozess gerne mit einer gut organisierten Bibliothek: HTML liefert die Regale, während React der intelligente Bibliothekar ist, der Bücher umsortiert, neue hinzufügt oder entfernt – und das alles ohne die Bibliothek zu schließen. Nach der Lektüre können Sie fortgeschrittene React-Strukturen aufbauen, die benutzerfreundlich, dynamisch und leicht erweiterbar sind.
Grundlegendes Beispiel
html<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>HTML mit React - Grundlegend</title>
<script src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
// Simple functional component
function Begruessung() {
return <h1>Willkommen auf meiner React-Seite!</h1>;
}
// Render component in root div
ReactDOM.createRoot(document.getElementById('root')).render(<Begruessung />);
</script>
</body>
</html>
Dieses Beispiel zeigt den grundlegendsten Weg, HTML mit React zu verbinden. Im HTML-Teil gibt es ein <div>
mit der ID root
. Dieses Element ist unser Container, vergleichbar mit einem leeren Raum im Haus, in den wir die React-Komponenten – unsere Möbel – stellen.
Die drei <script>
-Tags laden:
- React – die Bibliothek für Komponenten.
- ReactDOM – zuständig für das Rendering in den echten DOM-Baum.
- Babel – übersetzt die JSX-Syntax in reines JavaScript, damit der Browser sie versteht.
function Begruessung()
ist eine funktionale Komponente. Sie gibt ein JSX-Element zurück, das wie HTML aussieht, aber in JavaScript lebt. Diese Komponente könnte in einem Portfolio als Überschrift dienen oder auf einem sozialen Netzwerk den Benutzer begrüßen.
ReactDOM.createRoot(...).render()
ist der Befehl, der den React-Inhalt auf die Webseite bringt. Ein Einsteiger könnte fragen: „Warum nicht einfach<h1>
direkt im HTML schreiben?“ – weil React diese Elemente dynamisch ändern kann, ohne dass die Seite neu geladen wird. Sie können beispielsweise personalisierte Nachrichten, Echtzeit-Daten oder interaktive Elemente einbauen. Damit bildet dieses Beispiel das Fundament für dynamische Webinterfaces.
Praktisches Beispiel
html<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>HTML mit React - Praktisch</title>
<script src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
// Profile card component
function ProfilKarte(props) {
return (
<div>
<h2>{props.name}</h2>
<p>{props.bio}</p>
</div>
);
}
function ProfilListe() {
return (
<div>
<ProfilKarte name="Lisa Weber" bio="Frontend-Entwicklerin & Bloggerin" />
<ProfilKarte name="Jonas Müller" bio="E-Commerce-Spezialist & React-Fan" />
<ProfilKarte name="Sophie Klein" bio="Redakteurin für ein Newsportal" />
</div>
);
}
ReactDOM.createRoot(document.getElementById('root')).render(<ProfilListe />);
</script>
</body>
</html>
Best Practices und häufige Fehler:
Best Practices
- Semantische HTML-Tags wie
<section>
,<article>
oder<header>
verwenden, um SEO und Barrierefreiheit zu verbessern. - Alt-Attribute und ARIA-Rollen bereitstellen, damit Screenreader Inhalte interpretieren können.
- Saubere Komponentenstruktur: Jede Komponente hat eine klar definierte Aufgabe.
-
className
stattclass
in JSX verwenden.
Häufige Fehler -
Eine „div-Suppe“ ohne semantische Struktur erzeugen.
- Keys in Listen vergessen, was Rendering-Probleme verursacht.
- Falsches Verschachteln von HTML-Tags, z. B.
<p><div></div></p>
. - Zu viele logische Aufgaben in einer einzigen Komponente bündeln.
Debugging-Tipps:
Mit den React Developer Tools die Komponentenhierarchie überprüfen. DOM-Inspektor nutzen, um das gerenderte HTML zu verstehen. Schrittweise aufbauen: Erst statisches HTML, dann dynamische Logik ergänzen. In der Praxis hat sich bewährt, Komponenten klein und testbar zu halten.
📊 Schnelle Referenz
Property/Method | Description | Example |
---|---|---|
className | Setzt eine CSS-Klasse in JSX | <div className="container"></div> |
key | Eindeutige ID für Listenelemente | <li key={id}>{name}</li> |
props | Datenübergabe an Komponenten | <ProfilKarte name="Lisa" /> |
ReactDOM.createRoot | Erstellt den Root-Knoten für Rendering | ReactDOM.createRoot(document.getElementById('root')) |
render() | Rendert Komponente in den DOM | root.render(<App />) |
JSX | HTML-ähnliche Syntax in JavaScript | const el = <h1>Hallo</h1>; |
Zusammenfassung und nächste Schritte:
Sie haben gelernt, wie HTML und React zusammenarbeiten, um interaktive und dynamische Webanwendungen zu erstellen. HTML bietet das stabile Fundament, React bringt die Dynamik – wie ein Haus, das nachträglich flexibel möbliert werden kann. JSX verbindet beide Welten, indem es HTML in JavaScript integriert.
Diese Technik ist die Grundlage für moderne Projekte wie Blogs mit Live-Kommentaren, E-Commerce-Plattformen mit Echtzeit-Warenkörben oder soziale Netzwerke mit automatisch aktualisierten Feeds.
Als nächstes sollten Sie sich mit State-Management, Hooks und Komponenten-Kommunikation befassen, um komplexere Anwendungen zu erstellen. CSS sorgt dann für visuelles Styling, JavaScript für die Logik und React für den dynamischen Aufbau der UI.
Praktischer Tipp: Starten Sie mit kleinen Projekten wie einer interaktiven Projektliste im Portfolio oder einem Nachrichtenfeed, bevor Sie zu größeren Plattformen übergehen. Kontinuierliches Üben und der Einsatz von React Developer Tools helfen, Ihre Fähigkeiten schnell zu vertiefen.
🧠 Testen Sie Ihr Wissen
Testen Sie Ihr Wissen
Testen Sie Ihr Verständnis dieses Themas mit praktischen Fragen.
📝 Anweisungen
- Lesen Sie jede Frage sorgfältig
- Wählen Sie die beste Antwort für jede Frage
- Sie können das Quiz so oft wiederholen, wie Sie möchten
- Ihr Fortschritt wird oben angezeigt