Web Components
Frontend
JavaScript
Componentes
Custom Elements
Shadow DOM

Webkomponenten: Wiederverwendbare Komponenten für das Web

Web Components sind browsernative Muster zum Erstellen wiederverwendbarer Komponenten. Sie funktionieren auf jedem Framework oder ohne Framework. Dieser Leitfaden stellt die Technologien und deren Verwendung vor.

Was sind Webkomponenten?

Definition

Satz von Standards für gekapselte Komponenten.

Technologien

Benutzerdefinierte Elemente, Shadow DOM, HTML-Vorlagen.

Einheimisch

Wird direkt von Browsern unterstützt.

Framework-Agnostiker

Funktioniert mit React, Vue, Angular oder Pure.

Warum Webkomponenten

Wiederverwendung

Eine Komponente, jedes Projekt.

Kapselung

Stile laufen nicht aus.

Muster

Es kommt nicht auf die Bibliothek an.

Langlebigkeit

Browser unterstützen es und lehnen es nicht ab.

Benutzerdefinierte Elemente

Was ist das?

Definiert neue HTML-Elemente.

Syntax

Klasse MyElement erweitert HTMLElement { } customElements.define('my-element', MyElement);

###Lebenszyklus

connectedCallback, disconnectedCallback, attributeChangedCallback.

Nutzung

Schatten-DOM

Was ist das?

DOM im Element gekapselt.

Kapselung

CSS dringt nicht von außen nach außen oder hinein.

Schöpfung

this.attachShadow({ mode: 'open' });

Slots

für die Inhaltsprojektion.

HTML-Vorlagen

Was ist das?

HTML-Fragmente, die erst gerendert werden, wenn sie geklont werden.

Syntax

Nutzung

Klonen und zum DOM hinzufügen.

Leistung

Wird erst gerendert, wenn es nötig ist.

Lebenszyklusrückrufe

connectedCallback

Beim Hinzufügen zum DOM.

###unverbundenRückruf

Beim Entfernen aus dem DOM.

attributeChangedCallback

Wenn sich das Attribut ändert.

adoptiertRückruf

Beim Verschieben in ein neues Dokument.

Attribute und Eigenschaften

Attribute

Zeichenfolgen in HTML.

Eigenschaften

JavaScript-Werte im Objekt.

Synchronisierung

Reflektieren Sie zwischen beiden.

beobachteteAttribute

static get observedAttributes() { return ['value']; }

Slots

Standardsteckplatz

empfängt alle Inhalte.

Benannte Slots

Nutzung

...

Rückfall

Der Inhalt im Slot ist ein Fallback.

##Styling

Schatten-DOM-Stile

Stile innerhalb der Schattenwurzel.

:Gastgeber

Stilt das Hostelement.

::geschlitzt

Stile für geslotte Inhalte.

CSS-Teile

::part() für externe Anpassung.

CSS-Variablen

Sie passieren die Schattengrenze.

Mit Frameworks

###Reagieren

Kann mit einem Wrapper verwendet werden.

Vue

Native Unterstützung für benutzerdefinierte Elemente.

Eckig

CUSTOM_ELEMENTS_SCHEMA.

###Lit

Bibliothek zur Erleichterung der Erstellung.

Beleuchtetes Element

Was ist das?

Google-Bibliothek für Web Components.

Vorteile

Weniger typische, reaktive Eigenschaften.

Vorlagen

Mit Tags versehene Vorlagenliterale.

Annahme

Beliebt für Web Components.

Schablone

Was ist das?

Compiler für Web Components.

JSX

Vertraute Syntax für React-Entwickler.

TypeScript

Native Unterstützung.

Lazy Loading

Automatische Optimierung.

Browser-Unterstützung

Modern

Alle modernen Browser unterstützen es.

Polyfills

Für alte Browser.

Verifizierung

https://caniuse.com/custom-elementsv1

Testen

Unit-Tests

Scherz, Mokka mit DOM.

Web-Testläufer

Modernes Testen für Webkomponenten.

Offenes WC

Testwerkzeuge.

##Leistung

Anschaffungskosten

Schatten-DOM-Overhead.

Skalierung

Viele Komponenten sind effizient.

Bündel

Komponenten werden bei Bedarf geladen.

Häufige Fehler

Vergiss Super

super() im Konstruktor.

Attribut vs. Eigenschaft

Verwechseln Sie die beiden.

Schwerer Konstrukteur

Viel Arbeit im Konstrukteur.

Stil undicht

Ohne Shadow DOM zu verwenden.

Anwendungsfälle

Designsysteme

Gemeinsame Komponenten.

Mikrofrontends

Integration unabhängiger Teile.

Widgets von Drittanbietern

Auf jeder Website einbetten.

Legacy-Integration

Nach und nach modernisieren.

Fazit

Web Components sind leistungsstarke Standards für wirklich wiederverwendbare Komponenten. Sie funktionieren heute in allen modernen Browsern und ergänzen jeden Stack.

##FAQs

1) Web Components React ersetzen? Nicht unbedingt. Sie können koexistieren.

2) Benötige ich Lit oder Schablone? Sie helfen, aber reine Vanille funktioniert.

3) Funktioniert SEO mit Shadow DOM? Google rendert JavaScript. Normalerweise funktioniert es.

4) Ist die Leistung gut? Ja. Browser wurden optimiert.

5) Wann sollte Web Components verwendet werden? Von Projekten/Frameworks gemeinsam genutzte Komponenten.

Lesen Sie auch