So verwenden Sie das Gültigkeitsbereichsattribut von style in vue
In diesem Artikel wird hauptsächlich das bereichsbezogene Attribut der vorsichtigen Verwendung von Stilen in Vue vorgestellt. Jetzt werde ich es mit Ihnen teilen und Ihnen eine Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf
Um den Stil in der Vue-Komponente zu privatisieren (modularisieren) und die globale Situation nicht zu verschmutzen, können Sie dem Stil-Tag das Bereichsattribut hinzufügen, um anzuzeigen, dass dies nur der Fall ist gehört zum aktuellen Moment, das ist ein sehr guter Schachzug, aber warum sollte man ihn mit Vorsicht genießen? Denn wenn wir den Stil öffentlicher Komponenten (Bibliotheken von Drittanbietern oder projektspezifische Komponenten) ändern müssen, verursacht der Gültigkeitsbereich häufig größere Schwierigkeiten und erfordert zusätzliche Komplexität.
Das Prinzip der flächendeckenden Umsetzung privatisierter Stile
Warum wird es Ihrer Meinung nach die Komplexität erhöhen? Beginnen wir also mit den Prinzipien der Modulimplementierung. Zur Vereinfachung der Benennung gehen wir davon aus, dass diese Art von Komponente als private Modulkomponente bezeichnet wird und andere Komponenten ohne Gültigkeitsbereich als allgemeine Modulkomponenten bezeichnet werden.
Bei der Betrachtung der DOM-Struktur haben wir festgestellt, dass Vue der DOM-Struktur und dem CSS-Stil eindeutige und sich nicht wiederholende Tags hinzufügt, um Einzigartigkeit sicherzustellen und den Zweck der Privatisierung und Modularisierung des Stils zu erreichen. Das konkrete Rendering-Ergebnis wird anhand eines Beispiels erläutert.
Schaltflächenkomponente einer öffentlichen Komponente
Eine Schaltfläche einer öffentlichen Komponente. Um den Stil zu modularisieren, fügen Sie ihr das bereichsbezogene Attribut
//button.vue <template> <p class="button-warp"> <button class="button">text</button> </p> </template> ... <style scoped> .button-warp{ display:inline-block; } .button{ padding: 5px 10px; font-size: 12px; border-radus: 2px; } </style>
<🎜 hinzu >Durchsuchen Der HTML-Teil und der CSS-Teil, die von der vom Browser gerenderten Schaltflächenkomponente
Schaltflächenkomponente gerendert werden, sind jeweils:<p data-v-2311c06a class="button-warp"> <button data-v-2311c06a class="button">text</button> </p>
.button-warp[data-v-2311c06a]{ display:inline-block; } .button[data-v-2311c06a]{ padding: 5px 10px; font-size: 12px; border-radus: 2px; }
- Fügen Sie ein sich nicht wiederholendes Datenattribut (in der Form: data-v-2311c06a) hinzu HTML-DOM-Knoten zur Darstellung der Einzigartigkeit von
- Fügen Sie am Ende jedes CSS-Selektors (kompiliert und) einen Datenattributselektor der aktuellen Komponente hinzu (z. B. [data-v-2311c06a]). generierte CSS-Anweisung) ) zum Privatisieren von Stilen
Andere Komponenten verweisen auf die Schaltflächenkomponente
Oben wird das Ergebnis des Renderns einer einzelnen Komponente analysiert. Was passiert also, nachdem sich die Komponenten gegenseitig aufgerufen haben? , insbesondere in zwei Situationen unterteilt: Allgemeine Modulkomponenten beziehen sich auf private Modulkomponenten (im Wesentlichen dasselbe wie private Modulkomponenten auf allgemeine Modulkomponenten); Zum Beispiel: Wenn die Schaltflächenkomponente in der Komponente content.vue verwendet wird, was ist der Unterschied im Rendering-Ergebnis, wenn die Komponente content.vue das bereichsbezogene Attribut hinzufügt?//content.vue <template> <p class="content"> <p class="title"></p> <!-- v-button假设是上面定义的组件 --> <v-button></v-button> </p> </template> ... <style> .content{ width: 1200px; margin: 0 auto; } .content .button{ border-raduis: 5px; } </style>
<p class="content"> <p class="title"></p> <!-- v-button假设是上面定义的组件 --> <p data-v-2311c06a class="button-warp"> <button data-v-2311c06a class="button">text</button> </p> </p>
/*button.vue渲染出来的css*/ .button-warp[data-v-2311c06a]{ display:inline-block; } .button[data-v-2311c06a]{ padding: 5px 10px; font-size: 12px; border-radus: 2px; } /*content.vue渲染出来的css*/ .content{ width: 1200px; margin: 0 auto; } .content .button{ border-raduis: 5px; }
Private Komponente des Moduls (bereichsgebunden hinzufügen) Private Komponente des Referenzmoduls
Was passiert, wenn das Attribut mit Gültigkeitsbereich hinzugefügt wird? Gemäß den zu Beginn analysierten Regeln (dies gilt auch): Fügen Sie zuerst das Datenattribut zu allen DOM-Knoten hinzu und fügen Sie dann am Ende den Datenattributselektor hinzu CSS-Selektor Dann sind das gerenderte HTML und CSS:<p data-v-57bc25a0 class="content"> <p data-v-57bc25a0 class="title"></p> <!-- v-button假设是上面定义的组件 --> <p data-v-57bc25a0 data-v-2311c06a class="button-warp"> <button data-v-2311c06a class="button">text</button> </p> </p>
/*button.vue渲染出来的css*/ .button-warp[data-v-2311c06a]{ display:inline-block; } .button[data-v-2311c06a]{ padding: 5px 10px; font-size: 12px; border-radus: 2px; } /*content.vue渲染出来的css*/ .content[data-v-57bc25a0]{ width: 1200px; margin: 0 auto; } .content .button[data-v-57bc25a0]{ border-raduis: 5px; }
//content.vue <template> <p class="content"> <p class="title"></p> <!-- v-button假设是上面定义的组件 --> <v-button></v-button> </p> </template> ... <style scoped> .content{ width: 1200px; margin: 0 auto; } </style> <style> .content .button{ border-raduis: 5px; } </style>
Zusammenfassung der bereichsbezogenen Rendering-Regeln
Zusammenfassung der drei bereichsbezogenen Rendering-Regeln- Fügen Sie ein Nicht-Duplikat zum hinzu HTML-DOM-Knotendatenattribut (Formular: data-v-2311c06a), um seine Einzigartigkeit anzuzeigen
-
Fügen Sie am Ende jedes CSS-Selektors (kompilierte und generierte CSS-Anweisung) einen Datenattributselektor der aktuellen Komponente (z. B. [data-v-2311c06a]) hinzu, um den Stil zu privatisieren
Wenn die Komponente andere Komponenten enthält, wird nur das Datenattribut der aktuellen Komponente zum äußersten Tag anderer Komponenten hinzugefügt
Lösung
Für die referenzierte Drittanbieter-Bibliothek können wir nichts ändern, wenn die andere Partei Scoped verwendet. Wenn wir ihren Stil wirklich ändern müssen, können wir den Stil in der Komponente am besten ohne Scoped ändern. oder global Den Stil direkt zu ändern ist sehr unhöflich!
Für die Komponenten, die Sie pflegen, müssen Sie klar darüber nachdenken, ob der Stil der Komponente allen Situationen gerecht wird. Wenn es wirklich notwendig ist, es hinzuzufügen, wird es zweifellos die Arbeit der Entwickler erhöhen, die diese Komponente verwenden!
Wenn Sie eine bessere Lösung für dieses Problem haben, sagen Sie es mir bitte!
Interessante Fakten
Bei der Verwendung von Scoped müssen Sie bei dieser Funktion von Scoped vorsichtig sein, also habe ich es angesprochen ein Problem Die ursprüngliche Absicht des Scoped-Designs besteht nicht darin, zuzulassen, dass der Stil der aktuellen Komponente aufgrund des Designs den Stil eines anderen Ortes verändert. Daher wurde dieses Problem natürlich geschlossen
Das Obige habe ich für alle zusammengestellt und hoffe, dass es in Zukunft für alle hilfreich sein wird.
Verwandte Artikel:
Über Kryptomodul-Sicherheitskenntnisse in Nodejs (ausführliches Tutorial)
So implementieren Sie ein unscharfes Dropdown-Feld in Angular Query-Funktion
So implementieren Sie eine Anmeldung in js, die eine gleitende Überprüfung erfordert
Das obige ist der detaillierte Inhalt vonSo verwenden Sie das Gültigkeitsbereichsattribut von style in vue. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Sie können der VUE -Taste eine Funktion hinzufügen, indem Sie die Taste in der HTML -Vorlage an eine Methode binden. Definieren Sie die Methode und schreiben Sie die Funktionslogik in der VUE -Instanz.

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

Es gibt drei Möglichkeiten, sich auf JS -Dateien in Vue.js zu beziehen: Geben Sie den Pfad direkt mit dem & lt; Skript & gt an. Etikett;; Dynamischer Import mit dem montierten () Lebenszyklushaken; und importieren über die Vuex State Management Library.

Mit der Watch -Option in Vue.js können Entwickler auf Änderungen in bestimmten Daten anhören. Wenn sich die Daten ändert, löst sich eine Rückruffunktion aus, um Aktualisierungsansichten oder andere Aufgaben auszuführen. Zu den Konfigurationsoptionen gehören unmittelbar, die festlegen, ob ein Rückruf sofort ausgeführt werden soll, und Deep, das feststellt, ob Änderungen an Objekten oder Arrays rekursiv anhören sollen.

VUE.JS hat vier Methoden, um zur vorherigen Seite zurückzukehren: $ router.go (-1) $ router.back () verwendet & lt; Router-Link to = & quot;/& quot; Komponentenfenster.history.back () und die Methodenauswahl hängt von der Szene ab.

VUE Multi-Page-Entwicklung ist eine Möglichkeit, Anwendungen mithilfe des Vue.js-Frameworks zu erstellen, in dem die Anwendung in separate Seiten unterteilt ist: Code-Wartung: Die Aufteilung der Anwendung in mehrere Seiten kann das Verwalten und Wartungsbereich erleichtern. Modularität: Jede Seite kann als separates Modul für eine einfache Wiederverwendung und den Austausch verwendet werden. Einfaches Routing: Die Navigation zwischen Seiten kann durch einfache Routing -Konfiguration verwaltet werden. SEO -Optimierung: Jede Seite hat eine eigene URL, die SEO hilft.

Sie können die Vue -Version mit Vue Devtools abfragen, um die Registerkarte VUE in der Konsole des Browsers anzuzeigen. Verwenden Sie NPM, um den Befehl "npm list -g vue" auszuführen. Suchen Sie das Vue -Element im Objekt "Abhängigkeiten" der Datei package.json. Führen Sie für Vue -CLI -Projekte den Befehl "Vue --version" aus. Überprüfen Sie die Versionsinformationen im & lt; Skript & gt; Tag in der HTML -Datei, die sich auf die VUE -Datei bezieht.

Funktionsabfangen in VUE ist eine Technik, mit der die Häufigkeit, mit der eine Funktion eingerufen wird, innerhalb eines bestimmten Zeitraums aufgerufen wird und Leistungsprobleme verhindern. Die Implementierungsmethode lautet: Importieren Sie die Lodash -Bibliothek: importieren {dunounce} aus 'lodash'; Verwenden Sie die Dabounce -Funktion, um eine Intercept -Funktion zu erstellen: const dabouncedFunction = dunounce (() = & gt; { / logical /}, 500); Rufen Sie die Abfangfunktion auf und die Steuerfunktion wird höchstens einmal in 500 Millisekunden aufgerufen.
