Das gescheiterte Versprechen von Web Components

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Lea hat ein paar Worte:

Das Durchstöbern der Komponenten auf webcomponents.org erfüllt mich mit Angst, und ich bin vollkommen komfortabel damit, JS zu schreiben – ich schreibe JS als meinen Beruf! Welche Hoffnung haben diejenigen, die kein JS schreiben können? Die Verwendung eines benutzerdefinierten Elements aus dem Verzeichnis muss oft einem Ritual aus npm flugelhorn, import clownshoes, build quux vorausgehen, alles völlig uneingeschränkt, weil "hier ist meine Lastwagenladung an Abhängigkeiten, ja, was soll's". Viele Schritte werden sogar ausgelassen, wahrscheinlich weil sie "offensichtlich" sind.

Als ich A Bit on Web Component Libraries schrieb, wurde mir gesagt, dass die Hauptsache, die ich falsch gemacht habe, darin besteht, dass

Die Idee war, Primitiven zu schaffen, auf denen Bibliotheken aufbauen könnten, damit sie weniger Code ausliefern. Es war immer die Absicht, dass man eine Bibliothek damit verwendet.

Es ist viele Jahre her, dass HTML-Imports gestorben sind. Es war lange Zeit Daves persönlicher Dorn im Auge bezüglich Web Components. Also, ich nehme an, danach war es ein "alles JavaScript oder nichts"-Ansatz für Web Components. Und ich hasse es zu sagen, aber es fühlt sich an, als ob es viel näher an einem Nichts als an einem Segen ist.

Ich bin aber immer noch optimistisch. Web Components können einige sehr coole Dinge tun, die nur Web Components tun können. Der Shadow DOM ist ein großer Teil davon. Zum Beispiel erinnere ich mich, dass Twitter vor Jahren experimentierte, eingebettete Tweets zu Web Components (statt iframes) zu machen, weil es viel schneller war (in jeder Hinsicht). Das hat sich nie manifestiert (🤷‍♂️), aber es schien mir eine verdammt gute Idee zu sein.

Ich denke, die Styling-Geschichte ist eine große Sache. Ich wette, ich würde sie mindestens etwas öfter verwenden, wenn das Styling nicht so seltsam wäre. Ich habe gesehen, wie Scott heute danach gefragt hat und 75% der Leute wünschen sich eine Möglichkeit, einfach in diesen Shadow DOM hineinzugreifen und ihn mit normalem CSS zu stylen. Ich verstehe, warum das geschützt werden muss (das ist ein wichtiger Punkt des Shadow DOM an sich), aber die Notwendigkeit, sehr explizit darauf zuzugreifen, scheint mir ein ausreichender Schutz zu sein.

Direkter Link →