Welcome! Please hold on...

0 %
Kashif Sohail
Sr. Frontend Developer
  • Residence:
    Pakistan
  • City:
    Karachi
  • Age:
    26
Magento 1x 2x
Wordpress
Laravel
Angular
React
English
Urdu
  • Bootstrap, Tailwind
  • Sass, Less, Css
  • Webpack
  • GIT knowledge
0

No products in the cart.

HTML Web Components Make Progressive Enhancement And CSS Encapsulation Easier!

August 15, 2024

[ad_1]

Ich muss danken Jeremy Keith und sein wunderbar aufschlussreicher Artikel vom Ende letzten Jahres, das mich mit dem Konzept von HTML-Webkomponenten bekannt machte. Das war für mich der „Aha!“-Moment:

Wenn Sie vorhandenes Markup in ein benutzerdefiniertes Element einbinden und dann mit JavaScript ein neues Verhalten anwenden, tun Sie technisch gesehen nichts, was Sie nicht schon vorher mit DOM-Traversierung und Ereignisbehandlung hätten tun können. Aber es ist weniger anfällig, dies mit einer Webkomponente zu tun. Es ist portabel. Es gehorcht dem Single-Responsibility-Prinzip. Es tut nur eine Sache, aber die tut es gut.

Bis dahin war ich der falschen Annahme, dass alle Webkomponenten basieren ausschließlich auf der Präsenz von JavaScript in Verbindung mit dem ziemlich beängstigend klingenden Schatten-DOM. Es ist zwar tatsächlich möglich, Webkomponenten auf diese Weise zu erstellen, aber es gibt noch eine andere Möglichkeit. Eine bessere vielleicht? Besonders wenn Sie, wie ich, für Progressive Verbesserung. HTML-Webkomponenten sind letztendlich nur HTML.

Obwohl es nicht in den Rahmen dessen fällt, was wir hier diskutieren, hat Andy Bell kürzlich einen Artikel verfasst, der seine (exzellente) Interpretation dessen, was progressive Verbesserung bedeutet.

Sehen wir uns drei konkrete Beispiele an, die die meiner Meinung nach wichtigsten Funktionen von HTML-Webkomponenten demonstrieren – CSS-Stilkapselung und Möglichkeiten zur schrittweisen Verbesserung – ohne dass man sich auf JavaScript verlassen muss, um sofort einsatzbereit zu sein. Wir werden auf jeden Fall JavaScript verwenden, aber die Komponenten sollten auch ohne JavaScript funktionieren.

Die Beispiele finden Sie alle in meinem Web-UI-Boilerplate-Komponentenbibliothek (erstellt mit Storybook), zusammen mit dem zugehöriger Quellcode in GitHub.

Beispiel 1:

Live Demo

Mir gefällt wirklich, wie Chris Ferdinandi lehrt Erstellen einer Webkomponente von Grund aufam Beispiel eines Offenlegungsmusters (Anzeigen/Ausblenden). Dieses erste Beispiel erweitert seine Demo.

Beginnen wir mit dem erstklassigen Bürger, HTML. Webkomponenten ermöglichen es uns, benutzerdefinierte Elemente mit unseren eigenen Namen zu erstellen, was in diesem Beispiel der Fall ist mit einem Tag, den wir verwenden, um ein

Content to be shown/hidden.

Wenn JavaScript deaktiviert ist oder nicht ausgeführt wird (aus einer Reihe möglicher Gründe), ist die Schaltfläche standardmäßig ausgeblendet — dank der hidden Attribut darauf – und der Inhalt innerhalb des Div wird einfach standardmäßig angezeigt.

Schön. Das ist ein wirklich einfaches Beispiel für progressive Verbesserung in Aktion. Ein Besucher kann den Inhalt mit oder ohne