gestapelte Bausteine
|

Modularer Aufbau von Websites mit Web-Components

Web Components ermöglichen einen modularen Aufbau von Websites, bei dem du UI-Elemente als unabhängige Bausteine erstellst – für maximale Wiederverwendbarkeit, Wartbarkeit und Design-Kontrolle ohne zusätzliche Frameworks wie beispielsweise React oder Vue. Du erstellst dir hierbei ein eigenes HTML-Element, das von einer JavaScript-Datei gesteuert wird. Auch individuelle Inhalte an Web Components zu übergeben ist dabei standardmäßig möglich über Attribute, Properties, Slots oder JSON-Props.

Vorteile des modularen Designs

Der modulare Aufbau mit Web Components zerlegt Websites in eigenständige Teile: Custom Elements wie <mein-button> oder <site-footer> werden zentral entwickelt und per einfachem selbst definierten Tag in HTML eingebunden.
Ein sogenanntes Shadow DOM kann jeden Baustein komplett abkapseln – CSS-Stile und Inhalt bleiben isoliert, dadurch ergeben sich keine Konflikte mit anderen Modulen. 

Dadurch hast du

  • Schnelle Anpassung der kompletten Website: Footer, Header, Cards oder ähnliche Elemente kannst du einmal erstellen und überall einsetzen – Änderungen sind zentral und sofort site-weit sichtbar.
  • Design-Systeme: Du hast einheitliche Module für Agentur-Projekte zur Verfügung.
  • Effizienz-Steigerung: Weniger Copy-Paste, kürzere Ladezeiten durch kleine, fokussierte Komponenten.
  • Allerdings bedeutet das externe Kapseln des CSS im Shadow DOM auch, dass du mit CSS Custom Properties arbeiten musst, um ein globales Theming (z.B. bei dark-mode) zu erreichen.

Vergleich: Web Components vs. React vs. PHP

Web Components stehen bei ihrer modularen Arbeitsweise in Konkurrenz zu vergleichbaren Techniken wie PHP-Includes oder React. Web Components laufen nativ im Webbrowser ohne Framework-Abhängigkeit. React glänzt eher bei komplexen UIs, und PHP mit vorgefertigten serverseitigen Funktionen. Wenn du über weniger Frontenderfahrung oder Wissen über das DOM verfügst, ist evtl. React die bessere Lösung für dich. Wenn du Framework-übergreifende Komponenten brauchst, solltest du zu Web-Components greifen.

TechnikModularitätVorteileNachteileWann sinnvoll?
Web ComponentsNative Bausteine, framework-freiKapselung per Shadow DOM, leicht wiederverwendbar über Projekte. Hohe Langzeitstabilität.Komplex für dynamische Apps. Läuft in sehr alten Browsern nur mit PolyfillsStatische Sites, Design-Systeme, kleine Teams
ReactKomponenten mit Virtual DOMWeit verbreitet, effizient bei UpdatesFramework-Abhängigkeit, höherer OverheadDynamisches Nachladen von Inhalten, große Apps
PHP IncludesServerseitige Partial-TemplatesEinfach, kein JS, fertiges HTMLKeine Client-KapselungNutzen von vorgefertigten PHP-Funktionen

Einen schönen Vergleich von React, Vue.js, Angular & Co findest du auf https://www.youtube.com/watch?v=xsxNzKvpBIk. Oder auch auf https://www.uxpin.com/studio/blog/react-vs-web-components/https://blog.logrocket.com/web-components-vs-react/ und https://www.zealousys.com/blog/why-react-and-php-are-a-perfect-pair-for-web-development/

Browserunterstützung

Web-Components haben eine ausgezeichnete Unterstützung in allen modernen Browsern (Chrome 54+, Firefox 63+, Safari 10.1+, Edge 79+), die über 98% der globalen Nutzer abdecken.

Live Demos

Schau dir dazu ein einfaches Beispiel unter https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Webcomponent-01.html  an. Hier habe ich einen Footer als Web-Component mit dem Element <site-footer></site-footer> in zwei HTML-Seiten eingebaut. Die Inhalte und Funktionen dieses Elements werden in der Datei footer-component.js festgelegt.
Falls der Kunde Änderungswünsche während oder nach der Projekterstellung hat, lassen sich die Inhalte des Footers auf der gesamten Website schnell aktualisieren, indem ich lediglich die zuständige Javascript Datei anpasse.

Ein etwas umfangreicheres Beispiel findest du unter https://web-einfach-machen.de/Kursmaterialien/Kurs_Frontend-komplett/Vorarbeiten/Leihinstrumente.html. Ziel bei diesem Beispiel ist es, eine Liste mit Leihinstrumenten auf diversen Seiten einer Musikschule anzeigen zu lassen. Die Liste lässt sich mit der Web-Component <instrumenten-liste data-src="./js/instrumente.json"></instrumenten-liste> an beliebigen Stellen des Webauftritts einbauen. Die Leihinstrumente werden in einer externen JSON-Datei gespeichert.

Literaturhinweise

  1. Gutes englischsprachiges Tutorial von Web Dev Simplified: „Learn Web Components In 25 Minutes“ auf https://www.youtube.com/watch?v=2I7uX8m0Ta0
  2. Tutorial von Traversy Media: https://www.youtube.com/watch?v=PCWaFLy3VUo
  3. Einführung auf CSS-Tricks: https://css-tricks.com/an-introduction-to-web-components/
  4. Weitere Infos unter https://www.ionos.de/digitalguide/websites/web-entwicklung/web-components/ oder https://kinsta.com/de/blog/web-komponenten/

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert