Web Components sind eine Sammlung standardisierter Browser-Technologien, mit denen sich eigene, wiederverwendbare HTML-Elemente definieren lassen. Statt für jede UI-Komponente ein Framework zu benötigen, schreibt man ein selbst gebautes Element wie <mein-button> – und kann es überall im HTML einsetzen.
Die drei Bausteine
- Custom Elements: Eigene Tags, deren Verhalten eine JavaScript-Klasse definiert – mit Lebenszyklus-Methoden wie
connectedCallback. - Shadow DOM: Ein gekapselter DOM-Baum, dessen CSS und Markup nicht nach außen leaken – Styles von außen können das Element nicht ungewollt verändern.
- HTML Templates: Das
<template>-Element hält Markup bereit, das erst beim Einfügen in die Seite aktiviert wird.
Vorteile
- Kapselung: Styles und Logik einer Komponente bleiben sauber getrennt – das verhindert CSS-Konflikte in großen Projekten.
- Framework-unabhängig: Web Components funktionieren in Vanilla-JavaScript, aber auch neben JSX-basierten Ansätzen wie React oder Vue.
- Standard statt Bibliothek: Kein zusätzliches Framework nötig – der Browser liefert die API nativ (ähnlich wie bei WebAssembly als offenem Standard).
Praxis-Beispiel
class MeinButton extends HTMLElement {
connectedCallback() {
this.innerHTML = "<button>Klick mich</button>";
}
}
customElements.define("mein-button", MeinButton);
Danach ist <mein-button></mein-button> überall im Markup verfügbar – in klassischen Seiten, in einer SPA oder in einer PWA. Mit TypeScript lassen sich die Element-Klassen zusätzlich typsicher machen.
Wann Web Components sinnvoll sind
Für wiederverwendbare Bausteine über mehrere Projekte hinweg, für Design-Systeme und überall dort, wo man nicht an ein bestimmtes Framework gebunden sein möchte. Wer mit einer API-getriebenen Komponentenbibliothek arbeitet, profitiert von der Langlebigkeit des Standards.