suchen
HeimWeb-FrontendCSS-TutorialEin bisschen in Webkomponentenbibliotheken

Ein bisschen in Webkomponentenbibliotheken

In letzter Zeit gab es viele Neuigkeiten über Webkomponenten, und ich werde sie hier sortieren.

Ich denke, eines der besten Anwendungsszenarien für Webkomponenten ist die Musterbibliothek. Anstatt es wie Bootstrap zu verwenden<div> , oder benutze es wie Bulma<code><div> Es ist besser, benutzerdefinierte Elemente zu verwenden, z.<code><designsystem-tabs></designsystem-tabs> . Die neue Shoelace -Bibliothek definiert den sl -Namespace, um ihre Komponenten zu definieren. Es ist eine Schema -Bibliothek, die ausschließlich auf Webkomponenten basiert, in denen die Tags sind<sl-tab-group></sl-tab-group> Element.

Was sind die Vorteile davon? Zunächst wird das Komponentenmodell eingeführt. Dies bedeutet, dass, wenn Sie an einer Komponente arbeiten, eine Vorlage und ein Stylesheet mit seinem Standort bezieht. Wenn Sie sich die interne Implementierung von Shoelace ansehen, können Sie sehen, dass alles auf Schablonen basiert.

Ein weiterer Vorteil ist, dass die Komponente einen Schattendom verwenden kann (und verwendet) kann. Dies bietet einen Isolationsmechanismus direkt von der Webplattform. Für uns CSS -Entwickler bedeutet dies, dass der Stil der Tags in der Tag -Komponente mit der .tab -Klasse (wow, es ist so cool!) Und in dieser Komponente isoliert. Selbst bei einem so generischen Namen würde ich nicht versehentlich andere Komponenten der gemeinsamen Klasse auf der Seite beeinflussen, noch würde es einige externe CSS geben, die die interne Struktur hier beeinträchtigen. Shadow Dom ist wie eine Sicherheitswand, die verhindert, dass Stile und Infiltration verhindern.

Ich sehe auch das schnelle Frameworkschragen, das auch eine Reihe von Komponenten ist. Sein Tag ist definiert als<fast-tabs></fast-tabs> . Dies erinnert mich an einen weiteren Vorteil von Webkomponenten als Schema-Bibliotheksmethode: Es fühlt sich an, als wäre es api-gesteuert und beginnt sogar mit dem Namen der Komponente selbst, was Sie tatsächlich in HTML verwenden. Die Eigenschaften dieses Elements können vollständig angepasst werden. Der aufkommende Standard scheint zu sein, dass Sie nicht einmal data- zu benutzerdefinierten Eigenschaften hinzufügen müssen. Wenn ich also eine Tag -Komponente erstellen möchte, kann es sein<chris-tabs active-tab="lunch" variation="rounded"></chris-tabs> .

Der vielleicht größte Spieler, der Webkomponenten als Schema -Bibliothek verwendet, ist ionisch. Ihre Etiketten sind<ion-tabs></ion-tabs> Sie können sie verwenden, ohne andere Rahmenbedingungen einzubeziehen (obwohl sie Angular, React und Vue zusätzlich zu ihrer eigenen Schablone unterstützen). Ionic hat große Fortschritte in Webkomponenten erzielt und kürzlich Schatten -Teile unterstützt. Hier ist die Erklärung von Brandy Carney erneut, die die Verpackung erklärt:

Shadow DOM hilft, zu verhindern, dass Stile aus Komponenten austreten und versehentlich auf andere Elemente angewendet werden. Zum Beispiel weisen wir unsere .buttonclass zu<ion-button></ion-button> Komponenten. Wenn der Ionic Framework -Benutzer die .button -Klasse auf eines seiner eigenen Elemente festlegt, erbt sie in früheren Versionen des Frameworks den Ionic -Taste -Stil. Weil<ion-button></ion-button> Es ist jetzt eine Schatten -Webkomponente, daher existiert dieses Problem nicht mehr.

Aufgrund dieser Kapselung kann der Stil jedoch nicht in die internen Elemente der Schattenkomponente eindringen. Dies bedeutet, dass der Benutzer seine CSS nicht verwenden kann, um interne Elemente zu lokalisieren, wenn die Schattenkomponente Elemente in seinem Schattenbaum rendert.

Die Kapselung ist eine gute Sache, aber es macht das Styling (absichtlich) "schwieriger". Es gibt ein wichtiges CSS -Konzept zu verstehen: CSS -benutzerdefinierte Eigenschaften können in den Schattendom eindringen . Aber es ist nicht ratsam, dass die Menschen entscheiden - ich denke, das ist richtig -, alles in einem Designsystem variabel zu "". Stattdessen geben sie jedem HTML -Fragment innerhalb des Schattendoms einen Teil, z.<div part="icon"> , was es uns ermöglicht, mit CSS, z. <code>custom-component::part(icon) { } . Ich denke, Teilbasis-Style-Haken sind meistens gut und eine vernünftige Lösung für eine Musterbibliothek wie diese, aber ich gebe zu, dass ein Teil davon mich stört. Der Selektor funktioniert anders als erwartet. Sie können beispielsweise den Inhalt nicht bedingt auswählen. Sie können auch keine untergeordneten Elemente auswählen oder Kaskaden verwenden. Mit anderen Worten, es ist nur ein einmaliges oder so, als würden Sie mit Ihren Händen direkt durch den Film gehen. Sie können nach vorne greifen und etwas greifen oder nicht, aber Sie können nichts tun.

Apropos Dinge, die die Menschen wütend machen, Andrea Giammarchi hat einen guten Standpunkt für die aktuelle Situation von Webkomponenten:

Jede Bibliothek, die mit meiner begann, schlägt vor, dass wir die Bibliothek importieren sollten, um das sogenannte " tragbare benutzerdefinierte Element " zu definieren.

Google empfiehlt immer, Litelement zu verwenden. Microsoft möchte, dass Sie Fastelement verwenden. Schablone hat seine eigenen Komponenten. Hyperhtml hat seine eigenen Komponenten. Niemand verwendet nur "rohe" Webkomponenten. Das ist sehr seltsam! Das Schlimmste ist, dass Webkomponenten eine "native Plattform" sein sollten, was bedeutet, dass wir uns nicht auf eine bestimmte Technologie verlassen müssen , um sie zu verwenden. Wenn wir dies tun, sind wir wie React oder irgendetwas anderes daran eingesperrt.

Andrea setzt einige Ideen in den Artikel vor, einschließlich der Verwendung einiger neuer und kleinerer Bibliotheken. Ich denke, was ich sehen möchte, ist eine Schema -Bibliothek, die überhaupt keine Bibliothek verwendet.

  1. Fast nennt sich selbst ein "Schnittstellensystem" in einem kontinuierlichen Satz auf der Homepage, gefolgt von einem "UI -Framework". Shoelaces nennt sich selbst eine "Bibliothek", aber ich nenne es eine "Modusbibliothek". Ich denke, "Designsystem" ist der am häufigsten verwendete Begriff, um dieses Konzept zu beschreiben, aber oft umfangreicher als eine bestimmte Technologie. Schnell verwendet diesen Begriff im Code selbst, um das Wrapper -Element zu bezeichnen, das das Thema steuert. Ich denke nicht, dass die Terminologie, die all dieses Zeug umgibt, alles andere als sicher ist.

Das obige ist der detaillierte Inhalt vonEin bisschen in Webkomponentenbibliotheken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Simulation der MausbewegungSimulation der MausbewegungApr 22, 2025 am 11:45 AM

Wenn Sie jemals eine interaktive Animation während eines Live -Vortrags oder einer Klasse anzeigen mussten, wissen Sie vielleicht, dass es nicht immer einfach ist, mit Ihren Folien zu interagieren

Suchen Sie die Suche mit Astro -Aktionen und Fuse.jsSuchen Sie die Suche mit Astro -Aktionen und Fuse.jsApr 22, 2025 am 11:41 AM

Mit Astro können wir während unseres Builds den größten Teil unserer Website generieren, verfügen jedoch über ein kleines Stück serverseitiger Code, mit dem Suchfunktionen mithilfe von so etwas wie Fuse.js. In dieser Demo werden wir Fuse verwenden, um eine Reihe persönlicher "Lesezeichen" zu durchsuchen.

Undefiniert: der dritte boolesche WertUndefiniert: der dritte boolesche WertApr 22, 2025 am 11:38 AM

Ich wollte eine Benachrichtigungsnachricht in einem meiner Projekte implementieren, ähnlich wie in Google Docs, während ein Dokument speichert. Mit anderen Worten, a

Zur Verteidigung der ternären ErklärungZur Verteidigung der ternären ErklärungApr 22, 2025 am 11:25 AM

Vor einigen Monaten war ich in Hacker News (wie einer) und stieß auf einen (jetzt gelöschten) Artikel über die Nichtverwendung von If -Anweisungen. Wenn Sie neu in dieser Idee sind (wie ich

Verwenden der Web -Sprach -API für mehrsprachige ÜbersetzungenVerwenden der Web -Sprach -API für mehrsprachige ÜbersetzungenApr 22, 2025 am 11:23 AM

Seit den frühen Tagen der Science -Fiction haben wir über Maschinen geträumt, die mit uns sprechen. Heute ist es alltäglich. Trotzdem die Technologie für die Herstellung

Jetpack Gutenberg BlöckeJetpack Gutenberg BlöckeApr 22, 2025 am 11:20 AM

Ich erinnere mich, als Gutenberg in den Kern entlassen wurde, weil ich an diesem Tag in Wordcamp war. Inzwischen sind einige Monate vergangen, also stelle ich mir immer mehr von uns vor

Erstellen einer wiederverwendbaren Paginationskomponente in VueErstellen einer wiederverwendbaren Paginationskomponente in VueApr 22, 2025 am 11:17 AM

Die Idee hinter den meisten Webanwendungen besteht darin, Daten aus der Datenbank abzurufen und sie dem Benutzer bestmöglich vorzustellen. Wenn wir dort mit Daten umgehen

Verwenden Sie 'Box Shadows' und Clip-Pad zusammenVerwenden Sie 'Box Shadows' und Clip-Pad zusammenApr 22, 2025 am 11:13 AM

Lassen Sie sich ein wenig Schritt für Schritt von einer Situation machen, in der Sie nicht ganz das tun können, was zu sinnvoll ist, aber Sie können es trotzdem mit CSS-Tricks erledigen. In diesem

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software