Felix Riesterer: Custom Elements

Beitrag lesen

Lieber dedlfix,

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

ist "Komponente" gleich Custom Element(s)?

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?

Inwiefern siehst Du eine Parallele zwischen goto und "keine Custom Elements"?

Aus meiner Sicht benötige ich keine selbstgebauten HTML-Elemente (lies: custom element wie z.B. <x-l> bei Gedichtzeilen), seit es diese data-*-Attribute gibt. Der Vorrat an Elementen in HTML ist so umfangreich, dass man mit den gegebenen Elementen vorzüglich semantischen Code schreiben kann, der unter Zuhilfenahme eines data-*-Attributs zu einer "Komponente" umfunktioniert werden kann.

Wenn du möchtest, kannst du dir mal Angular anschauen,

Habe Janosch mit Angular arbeiten sehen. Die verwenden TypeScript. Das wird zu VanillaJS compiliert. Feine Sache, aber für meine Zwecke zu groß.

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.

Vielleicht bin ich gerade borniert, aber klingt das nach einem zwingenden Argument für Custom Elements? Diese "Ansammlung der bekannten Dinge plus Code" klingt eher sogar nach Genuine HTML Elements... oder habe ich das alles einfach nur falsch verstanden?

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.

Komponenten, Komponenten - ich lese nur Komponenten, nichts aber über Custom Elements! Reden wir einfach nur aneinander vorbei?

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.

Canvas ist kein Custom Element, ebenso wenig ein <img src="diagramm.svg" alt="Diagramm">...

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.

Das ist mir klar. Anderswo nennt man so etwas ein Widget. Von mir aus nenne es "Komponente". Aber muss die mit einem (oder mehreren) Custom Elements realisiert werden?

Liebe Grüße,

Felix Riesterer.