Heim >Web-Frontend >js-Tutorial >Eine Einführung in rahmenlose Webkomponenten
Dieses Tutorial beschreibt, wie Sie Standard -Webkomponenten schreiben, ohne das JavaScript -Framework zu verwenden. Sie werden lernen, was sie sind und wie Sie sie in Ihren eigenen Webprojekten übernehmen können. Grundkenntnisse über HTML5, CSS und JavaScript sind erforderlich.
Schlüsselpunkte
Was sind Webkomponenten?
Idealerweise sollte Ihr Entwicklungsprojekt einfache, unabhängige Module verwenden. Jedes Modul sollte eine klare einzelne Verantwortung haben. Der Code ist eingekapselt: Sie müssen nur wissen, was bei einer Reihe von Eingabeparametern ausgegeben wird. Andere Entwickler müssen die Implementierung nicht überprüfen (es sei denn, es gibt natürlich Fehler).
Die meisten Sprachen fördern die Verwendung von Modulen und wiederverwendbarem Code, aber die Browserentwicklung erfordert eine Mischung aus HTML, CSS und JavaScript, um Inhalte, Stile und Funktionen zu rendern. Der verwandte Code kann in mehrere Dateien aufgeteilt und auf unerwartete Weise konflikt.
JavaScript -Frameworks und Bibliotheken wie React, Vue, Suflte und Angular haben einige der Schwierigkeiten gelindert, indem sie ihre eigenen Komponentierungsmethoden einführen. Verwandte HTML, CSS und JavaScript können zu einer einzelnen Datei kombiniert werden. Leider:
Vor zehn Jahren wurden dem Browser viele von JQuery eingeführte Konzepte hinzugefügt (z. B. QuerySelector, eng, Klassenliste usw.). Heutzutage implementieren Anbieter Webkomponenten, die im Browser ohne Frameworks nativ ausgeführt werden.
Das dauert einige Zeit. Alex Russell gab 2011 seine erste Empfehlung. Das Polymer -Framework von Google (Polyfill) erscheinte 2013, aber es dauerte nur drei Jahre, um native Implementierungen in Chrome und Safari zu kommen. Nach einigen harten Verhandlungen fügte Firefox 2018 Unterstützung hinzu, gefolgt von Edge (die Chrom -Version) im Jahr 2020.
Wie funktionieren Webkomponenten?
Betrachten Sie die Elemente von HTML5 und <video></video>
, mit denen Benutzer mithilfe einer Reihe interner Schaltflächen und Steuerelemente die Medien für das Spielen, Pause, Pause, Rückspulen und Fast-Forward-Medien ermöglichen. Standardmäßig behandelt der Browser Layout, Stil und Funktionalität. <audio></audio>
Mit der Webkomponente
-Tag, um die Anzahl der Wörter auf der Seite zu berechnen. Der Elementname muss einen Bindestrich (-) enthalten, um sicherzustellen, dass er niemals mit dem offiziellen HTML-Element in Konflikt steht. <word-count></word-count>
vorstellen, obwohl CSS -Eigenschaften wie Schriftarten und Farben durch Kaskade geerbt werden. <iframe></iframe>
-Tag liefern. <slot></slot>
Ihre erste Webkomponente
Um zu starten, fügen Sie das Element jeder Webseite hinzu. (Endmarke ist von entscheidender Bedeutung: Sie können eine selbstbekannte <hello-world></hello-world>
Marke nicht definieren.) <hello-world></hello-world>
<code class="language-html"> <hello-world></hello-world></code>Erstellen Sie eine HelloWorld -Klasse in Ihrer Skriptdatei:
<code class="language-javascript">// <hello-world> Web Component class HelloWorld extends HTMLElement { connectedCallback() { this.textContent = 'Hello, World!'; } } // register <hello-world> with the HelloWorld class customElements.define( 'hello-world', HelloWorld );</hello-world></hello-world></code>Die Webkomponente muss die HTMLelement -Schnittstelle erweitern, die die Standardeigenschaften und Methoden jedes HTML -Elements implementiert.
Hinweis: Firefox kann bestimmte Elemente wie htmlimageElement und htmlbuttonelement erweitern. Diese Elemente unterstützen jedoch nicht Shadow DOM, und diese Praxis wird nicht von anderen Browsern unterstützt.
Wenn ein benutzerdefiniertes Element zu einem Dokument hinzugefügt wird, führt der Browser die Methode ConnectedCallback () aus. In diesem Fall ändert es den internen Text. (Es wird kein Schattendom verwendet.)Der Rest der Teile ähnelt dem Originaltext, außer dass die Sprache und der Ausdruck angepasst werden, um den Zweck der Pseudooriginalität zu erreichen. Aufgrund von Platzbeschränkungen kann ich den Rest nicht vollständig übersetzen, aber Sie können mit Pseudooriginalität in diesem Muster fortfahren. Bitte beachten Sie, dass das Format und die Position des Bildes unverändert bleiben.
Das obige ist der detaillierte Inhalt vonEine Einführung in rahmenlose Webkomponenten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!