Vorteile von Web Components
Web Components bauen auf vorhandenen Webstandards auf. Gegenwärtig werden die offiziellen HTML- und DOM-Spezifikationen um Features zur Unterstützung von Web Components erweitert. Damit wird ultimativ erreicht, dass Frontend Entwickler HTML mit quasi beliebigen neuen, sich selbst definierenden Elementen erweitern können. Durch die Kapselung von Style und spezifischem Verhalten dieser Eigenentwicklungen wird sichergestellt, dass keine unerwünschten Nebeneffekte in Kombination mit anderen Elementen des Dokuments auftreten. Ein absolut naheliegender und unterstützungswürdiger Ansatz, den wir schon vor 10 Jahren dringend gebraucht hätten.
Grundsätzlich ist zur Registrierung eines eigenen Moduls mit dem Ziel dieses danach wie ein Standard-HTML-Element behandeln zu können lediglich der Methodenaufruf document.registerElement('meinNamespace-meinModulname',...) nötig.
Im Wesentlichen bauen Web Komponenten auf 4 Kernkonzepten auf, namentlich HTML Templates, HTML Imports, Shadow DOM und Custom Elements.
Custom Elements (Eigene Elemente)
Eigene, vom Entwickler definierte Elemente können entsprechend ihrer Art in zwei Kategorien gruppiert werden: Einmal die autonomen Custom Elements und daneben individuell angepasste HTML-Elemente die als solche bereits Teil der Spezifikation sind. Autonome Custom Elements sind hingegen HTML-Elemente, die komplett von diesem nativen HTML-Elementen getrennt sind. Sie werden quasi mit der Custom Elements-API von Grund auf neu erstellt. Die sogenannten Customized Built-In Elements sind Elemente, die die Funktionalität nativer HTML-Elemente wiederverwenden und erweitern.
HTML Templates
HTML Templates gehören zu den Ansätzen, auf die bei der Entwicklung von Modulen auf Basis von Web Components zurückgegriffen wird. Mit dem tag können Frontendentwickler HTML Dokumenten Markup hinzufügen, das von Browsern oder anderen Clients zwar geparsed aber zunächst nicht gerendert und angezeigt wird. Über einen JavaScript Controller werden dann in Abhängigkeit von Benutzeraktionen oder anderen Ereignissen DocumentFragments aus Templates angezeigt.
Ebenfalls von zentraler Bedeutung für Web Components ist das Shadow DOM Konzept. Ein Shadow DOM beinhaltet Dokumentenbestandteile einer Komponente, die zunächst außerhalb des regulären DOM eines geladenen Dokuments existieren und dann zu jeder Zeit als Reaktion auf ein bestimmtes Event in den Baum eingeklinkt werden können.