Frontend-Entwicklung
In dieser Lerneinheit erlernst du die Grundlagen von HTML, der Struktursprache des Webs. Du verstehst die wichtigsten HTML-Elemente und deren korrekte Verwendung für den Aufbau von Webseiten. Diese Basis-Kenntnisse wendest du direkt beim Erstellen deiner ersten eigenen Webseiten an.
Einführung
Du öffnest eine moderne Webanwendung im Jahr 2025: Die Seite lädt blitzschnell, Inhalte aktualisieren sich ohne Neuladung, das Design passt sich perfekt an dein Smartphone an.

Wie funktioniert das technisch? Welche Technologien machen moderne Webanwendungen so reaktionsschnell und benutzerfreundlich?
Früher bestand eine Webseite aus statischen HTML-Seiten. Heute entwickeln Frontend-Entwickler komplexe Anwendungen mit HTML, CSS und JavaScript, die sich wie native Apps anfühlen.
In dieser Lerneinheit lernst du die Grundlagen moderner Frontend-Entwicklung kennen: Von HTML-Struktur und CSS-Styling über moderne JavaScript-Syntax bis hin zu Single-Page Applications und Framework-Auswahl.
Lernziele
Nach dieser Lerneinheit kannst du:
- Die HTML-Struktur einer Webseite verstehen und die wichtigsten Elemente erklären
- CSS für Layout und Styling einsetzen und die Funktionsweise von Grid und Flexbox erklären
- JavaScript ES6+ Syntax lesen und grundlegende Konzepte anwenden
- Single-Page Applications konzeptionell verstehen und moderne SEO-Lösungen (SSR/SSG) erklären
- Frontend-Frameworks wie React, Angular und Vue.js vergleichen und Auswahlkriterien anwenden
Überleitung
Um moderne Webanwendungen zu verstehen, schauen wir uns zunächst die grundlegenden Bausteine an: HTML für die Struktur, CSS für das Design und JavaScript für die Interaktivität.
Danach lernst du, wie diese Technologien zusammen Single-Page Applications ermöglichen und wie du das richtige Framework für dein Projekt auswählst.
HTML Grundlagen
HTML (Hypertext Markup Language) ist die Struktursprache des Webs. Sie definiert den Inhalt und die Struktur einer Webseite durch Elemente und Tags.
Grundstruktur eines HTML-Dokuments
Jedes HTML-Dokument folgt dieser Struktur:
<!DOCTYPE html>
<html>
<head>
<title>Meine Webseite</title>
</head>
<body>
<h1>Willkommen</h1>
<p>Dies ist ein Paragraph.</p>
</body>
</html><!DOCTYPE html>definiert den Dokumenttyp als HTML5<html>ist das Wurzelelement<head>enthält Metainformationen (Titel, Links zu CSS)<body>enthält den sichtbaren Inhalt
Wichtige HTML-Elemente
| Element | Beschreibung | Beispiel |
|---|---|---|
<h1> bis <h6> | Überschriften (hierarchisch) | <h1>Hauptüberschrift</h1> |
<p> | Paragraph (Textabschnitt) | <p>Ein Absatz.</p> |
<a> | Link (Verlinkung) | <a href="url">Link</a> |
<ul>, <ol>, <li> | Listen (ungeordnet/geordnet) | <ul><li>Punkt</li></ul> |
<img> | Bild einbinden | <img src="bild.jpg" alt="Text"> |
HTML bildet das Fundament jeder Webseite. CSS und JavaScript bauen darauf auf.
CSS Grundlagen
CSS (Cascading Style Sheets) definiert das visuelle Erscheinungsbild einer Webseite. CSS trennt Inhalt (HTML) von Design.
CSS einbinden
Es gibt drei Wege, CSS einzubinden:
1. Externe CSS-Datei (empfohlen):
<link rel="stylesheet" href="styles.css">2. Internal (im <head>):
<style>
h1 { color: blue; }
</style>3. Inline (direkt im Element):
<h1 style="color: blue;">Überschrift</h1>CSS-Selektoren
/* Element-Selektor */
p { color: black; }
/* Klassen-Selektor */
.highlight { background: yellow; }
/* ID-Selektor */
#header { font-size: 24px; }
/* Kombinierter Selektor */
div.container p { margin: 10px; }Box-Model
Jedes HTML-Element ist eine Box mit:
- Content: Der eigentliche Inhalt
- Padding: Innenabstand
- Border: Rahmen
- Margin: Außenabstand
.box { width: 300px; padding: 20px; border: 2px solid black; margin: 10px; }CSS ist unverzichtbar für modernes Webdesign. Grid und Flexbox erweitern diese Grundlagen.
CSS Flexbox und Grid
Moderne CSS-Layouts nutzen Flexbox und CSS Grid für responsive Designs.
Flexbox für eindimensionale Layouts
Flexbox ordnet Elemente in einer Reihe (horizontal) oder Spalte (vertikal) an. Es ist ideal, wenn du Elemente entlang einer Achse ausrichten möchtest.
Beispiel: Horizontale Navigation
.navbar {
display: flex; /* Aktiviert Flexbox */
justify-content: space-between; /* Platz zwischen Elementen */
align-items: center; /* Vertikal zentriert */
}display: flexaktiviert Flexbox für den Containerjustify-contentsteuert horizontale Verteilungalign-itemssteuert vertikale Ausrichtung
CSS Grid für zweidimensionale Layouts
Grid erstellt komplexe Layouts mit Zeilen UND Spalten gleichzeitig. Ideal für Seiten-Layouts.
.layout {
display: grid;
grid-template-columns: 1fr 3fr 1fr; /* 3 Spalten: 1:3:1 */
gap: 20px; /* Abstand zwischen Zellen */
}1fr= 1 Fraction (Teil des verfügbaren Platzes)gapdefiniert Abstände zwischen Grid-Zellen
Wann was? Flexbox für Komponenten (Header, Navigation), Grid für Seiten-Layouts.
JavaScript Einführung
JavaScript ist die Programmiersprache des Webs. Sie macht Webseiten interaktiv und dynamisch.
Was ist JavaScript?
JavaScript (kurz: JS) ermöglicht es dir:
- Auf Benutzeraktionen zu reagieren (Klicks, Tastatureingaben)
- Den Inhalt einer Seite zu verändern (Texte ändern, Elemente hinzufügen)
- Daten vom Server zu laden (ohne die Seite neu zu laden)
- Berechnungen durchzuführen (z.B. Formulare validieren)
Wie funktioniert JavaScript?
JavaScript läuft im Browser des Benutzers (Client-Side). Der Browser führt den Code aus.
Beispiel: Alert-Fenster
alert("Hallo Welt!");Dieser Code zeigt ein Popup-Fenster mit “Hallo Welt!“.
JavaScript einbinden
1. Inline (direkt im HTML):
<button onclick="alert('Geklickt!')">Klick mich</button>2. Internes Script:
<script>
alert("Seite geladen!");
</script>3. Externe Datei (empfohlen):
<script src="script.js"></script>Warum JavaScript?
Ohne JavaScript wären Webseiten statisch - wie ein Buch. Mit JavaScript werden sie dynamisch - wie eine App.
Im nächsten Block lernst du moderne JavaScript-Syntax (ES6+).
JavaScript ES6+ Grundlagen
JavaScript ES6+ ist die moderne Version von JavaScript (ab 2015). ES6+ bringt viele Verbesserungen gegenüber dem alten ES5.
var vs. const/let
VERALTET (ES5):
var name = "Maria";
var age = 25;MODERN (ES6+):
const name = "Maria"; // Konstante, kann nicht neu zugewiesen werden
let age = 25; // Variable, kann geändert werdenRegel: Nutze const als Standard, let nur wenn du die Variable ändern musst. Vermeide var!
Arrow Functions
VERALTET:
function greet(name) {
return "Hallo " + name + "!";
}MODERN:
const greet = (name) => `Hallo ${name}!`;Arrow Functions sind kürzer und haben konsistentes this-Verhalten.
Template Literals
VERALTET: String-Konkatenation
alert("Hallo " + name + ", du bist " + age + " Jahre alt.");MODERN: Template Literals mit Backticks
alert(`Hallo ${name}, du bist ${age} Jahre alt.`);Warum ES6+? Klarerer Code, weniger Fehler, bessere Lesbarkeit. 2025 ist ES6+ Standard in allen modernen Browsern.
DOM-Manipulation und Events
Mit JavaScript kannst du das DOM (Document Object Model) manipulieren und auf Benutzeraktionen reagieren.
Elemente auswählen und ändern
// Element auswählen
const heading = document.querySelector("h1");
// Inhalt ändern
heading.textContent = "Neuer Titel";
// CSS-Klasse hinzufügen
heading.classList.add("highlight");Event-Listener
const button = document.querySelector("button");
button.addEventListener("click", () => {
alert("Button wurde geklickt!");
});Event-Handler machen deine Webseite interaktiv. Nutze addEventListener für moderne, flexible Event-Verwaltung.
Wichtig: Verwende Arrow Functions in Event-Listenern für konsistentes
this-Verhalten.
Responsive Web Design
Responsive Web Design (RWD) sorgt dafür, dass deine Webseite auf allen Geräten (Desktop, Tablet, Smartphone) optimal aussieht.
Mobile-First Ansatz
Designe zuerst für mobile Geräte, dann erweitere für größere Bildschirme:
/* Basis-Styles für Mobile */
.container {
width: 100%;
padding: 10px;
}
/* Desktop-Erweiterung */
@media (min-width: 768px) {
.container {
width: 80%;
padding: 20px;
}
}Flexible Einheiten
- Relative Einheiten:
%,em,rem,vw,vhstatt festepx - Flexible Bilder:
img { max-width: 100%; height: auto; }
Viewport Meta-Tag
<meta name="viewport" content="width=device-width, initial-scale=1">Ohne dieses Tag funktioniert Responsive Design nicht auf mobilen Geräten!
Media Queries für Responsive Design
Media Queries ermöglichen es, CSS-Regeln nur unter bestimmten Bedingungen anzuwenden - zum Beispiel abhängig von der Bildschirmgröße.
Was sind Media Queries?
Eine Media Query ist wie eine “Wenn-Dann”-Regel in CSS:
“Wenn der Bildschirm kleiner als 768px ist, dann ändere das Layout.”
Grundstruktur
@media (max-width: 768px) {
/* CSS-Regeln für Bildschirme bis 768px Breite */
.container {
width: 100%;
}
}@medialeitet die Media Query ein(max-width: 768px)ist die Bedingung (“maximal 768px breit”)- Innerhalb der geschweiften Klammern kommen die CSS-Regeln
Praktisches Beispiel
/* Standard (Desktop) */
.sidebar {
width: 300px;
float: left;
}
/* Tablets (bis 768px) */
@media (max-width: 768px) {
.sidebar {
width: 100%; /* Volle Breite */
float: none; /* Kein Float mehr */
}
}
/* Smartphones (bis 480px) */
@media (max-width: 480px) {
.sidebar {
display: none; /* Sidebar ausblenden */
}
}Breakpoints
Typische Breakpoints (Grenzwerte):
- Smartphone:
max-width: 480px - Tablet:
max-width: 768px - Desktop:
min-width: 1024px
Wichtig: Media Queries machen deine Webseite auf allen Geräten nutzbar!
Progressive Enhancement
Progressive Enhancement bedeutet: Beginne mit einer funktionierenden Basis, füge dann erweiterte Features hinzu.
Prinzip
- HTML: Semantisches HTML als solide Basis
- CSS: Styling hinzufügen (optional, Seite bleibt nutzbar ohne CSS)
- JavaScript: Interaktivität hinzufügen (optional, Seite bleibt nutzbar ohne JS)
Beispiel: Formular
Basis (HTML):
<form action="/submit" method="POST">
<input type="email" name="email" required>
<button type="submit">Senden</button>
</form>Das Formular funktioniert auch ohne JavaScript.
Enhancement (JavaScript):
form.addEventListener("submit", (e) => {
e.preventDefault();
// AJAX-Validierung und Absenden ohne Seitenwechsel
});Vorteil: Benutzer mit älteren Browsern oder deaktiviertem JavaScript können die Seite trotzdem nutzen. Zugänglichkeit und Robustheit sind garantiert.
Single-Page Applications (SPA) - Konzept
Eine Single-Page Application (SPA) ist eine Webanwendung, die aus einer einzigen HTML-Seite besteht. Inhalte werden dynamisch per JavaScript nachgeladen, ohne die Seite neu zu laden.
Traditionelle Webseite vs. SPA
Traditionell:
- Benutzer klickt Link
- Browser lädt komplette neue HTML-Seite vom Server
- Seite flackert beim Neuladen
SPA:
- Benutzer klickt Link
- JavaScript lädt nur die benötigten Daten (JSON)
- JavaScript aktualisiert nur den geänderten Teil der Seite
- Kein Seitenneuladung, keine Unterbrechung
Technologien hinter SPAs
- AJAX/Fetch API: Asynchrone Server-Anfragen ohne Seitenneuladung
- JSON: Datenaustausch-Format zwischen Server und Client
- Client-Side Routing: Änderung der URL ohne Seitenneuladung (z.B. mit React Router)
- JavaScript-Frameworks: React, Vue.js, Angular für effiziente SPA-Entwicklung
SPAs fühlen sich an wie native Apps - schnell, flüssig, reaktionsschnell.
SPA Vorteile und Herausforderungen
Single-Page Applications haben viele Vorteile, bringen aber auch Herausforderungen mit sich.
Vorteile von SPAs
| Bereich | Vorteil | Beschreibung |
|---|---|---|
| User Experience | Flüssige Navigation | Keine Seitenneuladungen, App-ähnliches Feeling mit schnellen, nahtlosen Übergängen |
| Performance | Schnelle Interaktionen | Nach initialem Laden werden nur Daten (JSON) nachgeladen statt komplettes HTML |
| Caching | Bessere Performance | Assets können gecacht werden, weniger Datenverkehr |
| Entwicklung | Klare Trennung | Frontend und Backend sind getrennt, moderne Frameworks erleichtern Entwicklung |
| Komponenten | Wiederverwendbarkeit | Komponenten-basierte Architektur ermöglicht Code-Wiederverwendung |
Herausforderungen
| Problem | Beschreibung | Lösung |
|---|---|---|
| Initialer Ladevorgang | Viel JavaScript muss beim ersten Aufruf geladen werden | Code-Splitting, Lazy Loading |
| SEO | Suchmaschinen sehen traditionell nur leere HTML-Hülle | Server-Side Rendering (SSR), Static Site Generation (SSG) |
| Browser-Navigation | Zurück-Button funktioniert nicht automatisch | Client-Side Routing mit History API |
| JavaScript-Pflicht | Ohne JavaScript funktioniert die App nicht | Progressive Enhancement, falls möglich |
Die meisten Herausforderungen sind durch moderne Frameworks (Next.js, Nuxt.js) gelöst!
Moderne SPA SEO-Lösungen - SSR, SSG und Prerendering
Moderne Frameworks bieten Server-Side Rendering (SSR) und Static Site Generation (SSG).
Das Problem (traditionelle SPAs)
Suchmaschinen crawlen eine leere HTML-Hülle:
<div id="app"></div> <!-- Leer! Content kommt erst per JS -->Google & Co. sehen keinen Inhalt → schlechtes Ranking.
Server-Side Rendering (SSR)
SSR rendert die Seite auf dem Server beim ersten Aufruf. Der Browser erhält vollständiges HTML:
<div id="app">
<h1>Willkommen</h1> <!-- Vollständiger Content! -->
<p>Dieser Inhalt ist sofort da.</p>
</div>Frameworks: Next.js (React), Nuxt.js (Vue), SvelteKit
Static Site Generation (SSG)
SSG generiert HTML-Seiten zur Build-Zeit. Jede Route wird als statisches HTML vorab erstellt.
Vorteil: Maximale Performance (statische Dateien), perfektes SEO
Frameworks: Next.js, Nuxt.js, Gatsby
Incremental Static Regeneration (ISR)
ISR kombiniert SSG + dynamische Updates:
- Seiten werden statisch generiert
- Im Hintergrund werden sie bei Bedarf aktualisiert
- Best of both worlds: Performance + Aktualität
Verfügbar in: Next.js
Prerendering
Einfachste Lösung für kleinere SPAs: HTML wird beim Deployment vorab generiert.
Tools: Prerender.io, Rendertron
Mit SSR, SSG und ISR ranken SPAs genauso gut wie traditionelle Webseiten!
To-Do-Listen Beispiel - Vanilla JavaScript ES6+
Schauen wir uns eine einfache To-Do-Liste an, geschrieben in modernem JavaScript ES6+.
HTML-Struktur
<div id="todoApp">
<input type="text" id="newTodo" placeholder="Neuer Eintrag">
<button id="addButton">Hinzufügen</button>
<ul id="todoList"></ul>
</div>JavaScript (ES6+) - Schritt für Schritt erklärt
// 1. Elemente aus dem DOM holen
const input = document.querySelector("#newTodo");
const button = document.querySelector("#addButton");
const list = document.querySelector("#todoList");Erklärung: querySelector findet das HTML-Element anhand der ID. const speichert die Referenz.
// 2. Funktion zum Hinzufügen eines To-Dos
const addTodo = () => {
const todoText = input.value.trim();
if (todoText !== "") {
const li = document.createElement("li");
li.textContent = todoText;
list.appendChild(li);
input.value = "";
}
};Zeile für Zeile:
input.value.trim()holt den Text aus dem Eingabefeld und entfernt Leerzeichen am Anfang/Endeif (todoText !== "")prüft, ob der Text nicht leer istdocument.createElement("li")erstellt ein neues<li>-Elementli.textContent = todoTextsetzt den Text des Elementslist.appendChild(li)fügt das Element zur Liste hinzuinput.value = ""leert das Eingabefeld
// 3. Event-Listener für Button-Klick
button.addEventListener("click", addTodo);
// 4. Event-Listener für Enter-Taste
input.addEventListener("keypress", (e) => {
if (e.key === "Enter") addTodo();
});Erklärung: Wenn der Button geklickt wird ODER Enter gedrückt wird, rufen wir addTodo() auf.
Frontend-Frameworks Übersicht - React, Vue, Angular
Die drei wichtigsten Frontend-Frameworks 2025 sind React, Vue.js und Angular. Jedes hat seine Stärken.
React (Meta/Facebook)
Typ: Library (fokussiert auf UI)
Stärken:
- Größte Community: Riesiges Ökosystem mit Bibliotheken für jede Aufgabe
- Flexibilität: Du entscheidest, welche zusätzlichen Tools du nutzt (Routing, State-Management)
- JSX-Syntax: HTML-ähnlich direkt in JavaScript
- React Hooks: Moderne, funktionale Programmierung
Ideal für: Große, komplexe SPAs mit starkem Ökosystem-Bedarf
Vue.js
Typ: Progressive Framework
Stärken:
- Einfacher Einstieg: Niedrige Lernkurve, auch für Anfänger
- Progressive Integration: Kann schrittweise in bestehende Projekte integriert werden
- Single-File Components: HTML, CSS und JS in einer
.vue-Datei - Ausgewogenes Ökosystem: Vue Router und Vuex offiziell unterstützt
Ideal für: Kleine bis mittelgroße Projekte, Teams mit weniger Erfahrung
Angular (Google)
Typ: Full-Featured Framework
Stärken:
- Vollständiges Framework: Alles dabei (Routing, HTTP, Forms, Testing)
- TypeScript: Stark typisiert, weniger Laufzeit-Fehler
- Enterprise-Ready: Klare Struktur, Dependency Injection
- Umfassende CLI:
ng generatefür Komponenten, Services, etc.
Ideal für: Enterprise-Anwendungen mit großen Teams
Gemeinsame Features: Alle drei bieten Komponenten-Architektur, reaktive Datenbindung und Server-Side Rendering (Next.js, Nuxt.js, Angular Universal).
Framework-Statistiken und Trends 2025
Welches Framework ist 2025 am beliebtesten? Hier sind aktuelle Zahlen und Trends.
Popularität und Adoption 2025
| Framework | npm Downloads/Monat | Trend | Verwendung |
|---|---|---|---|
| React | ~100M | ↗ Wachsend | 42% aller Projekte |
| Vue.js | ~30M | ↗ Stabil | 18% aller Projekte |
| Angular | ~20M | → Stabil | 15% aller Projekte |
Haupttrends 2025
React dominiert weiterhin:
- Größte Community mit über 200.000 Packages im npm-Ökosystem
- Enterprise-Adoption steigt (Meta, Netflix, Airbnb, Tesla)
- Next.js (SSR-Framework für React) ist Standard für neue Projekte
Vue.js wächst in Europa und Asien:
- Besonders beliebt in kleineren Teams und Freelancer-Projekten
- Nuxt.js bringt SSR/SSG-Features
- Developer Experience wird als sehr positiv bewertet
Angular bleibt Enterprise-Standard:
- Stabil in großen Unternehmen und Behörden
- TypeScript-First Ansatz passt zu Enterprise-Anforderungen
- Striktere Struktur bei großen Teams von Vorteil
Empfehlung: Für neue Projekte 2025 ist React (mit Next.js) die sicherste Wahl mit dem größten Ökosystem und besten Jobaussichten.
Anwendungsbeispiel mit React
React ermöglicht den Bau von wiederverwendbaren UI-Komponenten. Hier ein einfaches Beispiel:
import React from 'react';
class HelloMessage extends React.Component {
render() {
return <div>Hello {this.props.name}</div>;
}
}
ReactDOM.render(
<HelloMessage name="John" />,
document.getElementById('hello-example')
);Dieses kleine Beispiel zeigt, wie du eine einfache Komponente in React erstellst. Der HelloMessage-Komponent nimmt props (Eigenschaften) entgegen, um dynamische Daten zu verarbeiten. React’s deklarativer Ansatz ermöglicht ein übersichtliches und wartungsfreundliches Design deiner UI-Komponenten.
Framework-Auswahlkriterien für dein Projekt
Wie wählst du das richtige Framework? Diese Kriterien helfen bei der Entscheidung.
Kriterien-Checkliste
1. Projekt-Größe
- Klein (<10 Seiten): Vue.js oder Vanilla JS
- Mittel (10-50 Seiten): React oder Vue.js
- Groß (>50 Seiten, SPA): React (Next.js) oder Angular
2. Team-Erfahrung
- Anfänger: Vue.js (niedrigste Lernkurve)
- JavaScript-Erfahren: React (flexibel, große Community)
- TypeScript-Erfahren: Angular (TypeScript-First)
3. Performance-Anforderungen
- SEO wichtig: Next.js (React) oder Nuxt.js (Vue) für SSR/SSG
- Offline-Fähigkeit: Alle drei mit Service Workers möglich
- Mobile-Performance: React Native (React) für Cross-Platform
4. Langfristige Wartbarkeit
- Enterprise/Langlebig: Angular (strikte Struktur) oder React (große Community)
- Schnelle Prototypen: Vue.js (schneller Einstieg)
- Open-Source-Community: React (größte Anzahl Contributors)
Typische Szenarien
Startup/MVP: React (Next.js) - Schnell, flexibel, gute Developer-Erfahrung
Enterprise-App: Angular - Struktur, TypeScript, Full-Featured
Marketing-Website: Nuxt.js (Vue) oder Next.js (React) mit SSG
Dashboard/Admin: React - Viele fertige UI-Komponenten (Material-UI, Ant Design)
Wichtig: Die Wahl ist weniger kritisch als die konsequente Umsetzung. Alle drei Frameworks sind 2025 production-ready!
Zusammenfassung und Ausblick
Zusammenfassung
In dieser Lerneinheit hast du die grundlegenden Bausteine moderner Frontend-Entwicklung kennengelernt.
HTML - Die Struktur
HTML (Hypertext Markup Language) bildet das Fundament jeder Webseite. Du hast gelernt:
- Die Grundstruktur eines HTML-Dokuments (
<!DOCTYPE html>,<html>,<head>,<body>) - Wichtige Elemente wie Überschriften (
<h1>bis<h6>), Paragraphen (<p>), Links (<a>) und Listen (<ul>,<ol>) - Semantisches HTML sorgt für Struktur und Zugänglichkeit
CSS - Das Design
CSS (Cascading Style Sheets) gestaltet das visuelle Erscheinungsbild. Kernkonzepte:
- Selektoren (Element, Klasse, ID) zum gezielten Styling
- Box-Model (Content, Padding, Border, Margin) für Layout-Kontrolle
- Flexbox für eindimensionale Layouts (Navigation, Cards)
- CSS Grid für komplexe zweidimensionale Strukturen (Seiten-Layouts)
- Media Queries für Responsive Design auf allen Geräten
JavaScript ES6+ - Die Interaktivität
JavaScript macht Webseiten dynamisch und interaktiv:
- Moderne Syntax:
const/letstattvar, Arrow Functions, Template Literals - DOM-Manipulation: Elemente auswählen, ändern und Events verarbeiten
- Event-Listener für Benutzerinteraktionen
const button = document.querySelector("button");
button.addEventListener("click", () => alert("Geklickt!"));Single-Page Applications (SPAs)
SPAs bieten eine App-ähnliche Erfahrung:
- Konzept: Nur eine HTML-Seite, Inhalte werden dynamisch per JavaScript nachgeladen
- Vorteile: Flüssige Navigation, schnelle Interaktionen, bessere User Experience
- Herausforderungen: Initialer Ladevorgang, SEO, Browser-Navigation
- Moderne Lösungen: Server-Side Rendering (SSR) und Static Site Generation (SSG) lösen SEO-Probleme
Frontend-Frameworks
Die drei wichtigsten Frameworks im Vergleich:
- React (Meta/Facebook): Größte Community, flexibel, JSX-Syntax, 42% Marktanteil
- Vue.js: Einsteigerfreundlich, progressive Integration, niedrige Lernkurve
- Angular (Google): Vollständiges Framework, TypeScript-First, Enterprise-Standard
Auswahlkriterien: Projekt-Größe, Team-Erfahrung, Performance-Anforderungen, Langfristige Wartbarkeit
Progressive Enhancement
Der Ansatz für robuste Webseiten:
- HTML als solide Basis (funktioniert immer)
- CSS für verbessertes Design (optional)
- JavaScript für erweiterte Interaktivität (optional)
So bleibt deine Webseite auch bei deaktiviertem JavaScript oder älteren Browsern nutzbar.
Ausblick
In der nächsten Lerneinheit Backend-Entwicklung lernst du, wie Server-Logik funktioniert, APIs erstellt werden und Frontend mit Backend kommuniziert. Du wirst PHP, Node.js und Datenbank-Anbindungen kennenlernen.