dedlfix: Custom Elements

Beitrag lesen

Tach!

mir waren Custom Elements schon immer suspekt. Ich verwende sie einfach nicht. Es geht immer auch anders.

Man kann auch das Kapseln von wiederverwendbarem Code in selbst geschriebene Funktionen meiden und alles mit goto machen. Aber ob man damit glücklich wird?

Wenn du möchtest, kannst du dir mal Angular anschauen, und da ein bisschen durch das Tutorial schauen. Angular verwendet recht konsequent das Komponenten-Prinzip, wenn auch nicht in der Ausführung "Web Components". Sicherlich, wenn man nur etwas Javascript zur Seite hinzufügen möchte, um die eine oder die andere Funktionalität zu ergänzen, dann ist die Verwendung eines Frameworks, das für die Erstellung ganzer Anwendungen gedacht ist, nicht wirklich angebracht. Aber für diese "nur-etwas-Javascript"-Fälle sind die Web Components nicht unbedingt gedacht. Für Desktop-Anwendungen ist es hingegen seit sehr langer Zeit gang und gäbe, komplexe Elemente der Benutzeroberfläche in selbst definierten Komponenten zu kapseln. Natürlich ist das oft nur eine Ansammlung der bekannten Dinge plus Code, zusammengefasst unter einer Haube, und man kann das auch alles einzeln notieren. Aber übersichtlicher wird das am Ende nicht unbedingt. Es ist schon von Vorteil, wenn die Komplexität der Komponente hinter einer einzelnen Zeile Code verschwindet, zumindest an der Stelle, an der sie im restlichen Kontext eingebunden ist.

Auch im Webumfeld, wenn der Anwendungsfall noch nicht lautstark nach einer Webanwendung ruft (also das, was man auf dem Desktop als Programm mit GUI erzeugt hätte), lassen sich Komponenten nutzen. Beispielsweise sollen Daten in Form eines Tortendiagramms dargestellt werden. Kann man machen, indem man einen Canvas nimmt und etwas drauf herummalt, oder ein SVG nimmt und ein paar Deklarationen für die geometrischen Gebilde einfügt, oder vielleicht mit CSS aus ein paar Rechtecken Tortenstücke zaubert und im Kreis anordnet. Oder man erstellt sich daraus eine Komponente, der man nur noch die Daten übergibt.

Wenn du immer wieder Javascript an eins der HTML-Elemente anflanschst, oder gar mehrere HTML-Elemente in immer derselben Anordnung zuzüglich Javascript-Code eine wiederkehrende Einheit bilden, dann kann man darüber nachdenken, daraus eine Komponente zu erstellen. Die ist dann einfacher eingebaut als der komplexe HTML-Code plus Eventhandlerverdrahtung.

Komponenten sind also sehr stark darin, wiederverwendbaren Dingen einen Rahmen zu geben.

dedlfix.