detaillierte Erl?uterung der Methode der bedingten Anwendung von CSS -Klassen in Vue.js
Kernpunkte:
- In Vue.js kann die bedingte Anwendung von CSS -Klassen durch Bindung von JavaScript -Objekten an
class
Attribute implementiert werden. Die Attribute des Objekts entsprechen dem CSS -Klassennamen, und sein Wert ist ein JavaScript -Ausdruck, der bestimmt, ob die Klasse angewendet werden soll. - vue.js bietet zwei Syntaxe zum Erstellen von Klassenbindungen: Objektsyntax und Array -Syntax. Die Objektsyntax ist pr?gnanter, w?hrend die Array -Syntax den Vorlagencode l?schter macht. Welche Grammatik zu w?hlen ist, h?ngt von der pers?nlichen Pr?ferenz ab.
- vue.js unterstützt eine mehrfache Methode zur Bindung von bedingten Klassen, einschlie?lich der Verwendung tern?rer Operatoren, der Objektsyntax zur Bindung mehrerer Klassen, unter Verwendung von berechneten Eigenschaften, Kombination von statischen und Bindungsklassen und bedingten Bindungs ??-Inline -Stilen.
Manchmal die CSS -Klasse, die zur Laufzeit ge?ndert werden muss. Wenn Sie jedoch den Unterricht wechseln, ist es manchmal am besten, Stildetails bedingt anzuwenden. Angenommen, Ihre Ansicht hat einen Pager. Pager werden h?ufig verwendet, um gr??ere Projekts?tze zu navigieren. Beim Navigieren ist es für den Benutzer hilfreich, die Informationen auf der aktuellen Seite anzuzeigen. Der Projektstil ist nach der aktuell angezeigten Seite bedingt eingestellt. In diesem Fall k?nnte der Pager so aussehen:
In diesem Beispiel gibt es fünf Seiten, nur eine Seite kann gleichzeitig ausgew?hlt werden. Wenn Sie diesen Pager mit Bootstrap erstellen, wendet die ausgew?hlte Seite eine CSS -Klasse mit dem Namen active
an. Diese Klasse ist nur erforderlich, wenn die Seite derzeit angezeigt wird. Mit anderen Worten, die CSS -Klasse muss bedingt angewendet werden. Glücklicherweise bietet Vue eine M?glichkeit, CSS -Klassen zur Laufzeit auf Elemente anzuwenden, die ich in diesem Artikel demonstrieren werde.
Um CSS -Klassen zur Laufzeit bedingt anzuwenden, k?nnen Sie an ein JavaScript -Objekt binden. Um diese Aufgabe erfolgreich zu erledigen, müssen zwei Schritte ausgeführt werden. Zun?chst müssen Sie sicherstellen, dass die CSS -Klasse definiert ist. Erstellen Sie dann die Klassenbindung in der Vorlage. Ich werde diese Schritte im Rest dieses Artikels ausführlich erkl?ren. active
Schritt 1: Definieren Sie die CSS -Klasse
Angenommen, die im obigen Bild angezeigten fünfseitigen Elemente verwenden die folgende HTML -Definition:
Beachten Sie, dass jede Seite in diesem Code -Snippet ein Listenelementelement hat (das Element der dritten Listenelement enth?lt eine Klasse
). Wie Sie erraten k?nnen, ist dies eine CSS -Klasse, die Sie bedingt bewerben m?chten. Dazu müssen Sie ein JavaScript -Objekt hinzufügen.<div id="myApp"> <nav aria-label="Page navigation example"> <ul class="pagination"> <li class="page-item"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">1</a></li> <li class="page-item"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">2</a></li> <li class="page-item active"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">3</a></li> <li class="page-item"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">4</a></li> <li class="page-item"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">5</a></li> </ul> </nav> </div>
active
Schritt 2: Erstellen Sie eine Klasse -Bindung
Beim Erstellen von Klassenbindungen in einer Vorlage gibt es zwei Hauptoptionen: Verwenden Sie die Objektsyntax oder verwenden Sie die Array -Syntax. Ich werde Ihnen zeigen, wie Sie beide Methoden im Rest dieses Artikels verwenden.
Bindung unter Verwendung der ObjektsyntaxUm Klassenbindungen unter Verwendung der Objektsyntax zu erstellen, müssen JavaScript -Ausdrücke verwendet werden. Die Ausdrücke, die wir verwenden, sind in dem Code zu diesem Artikel zu sehen. Der relevante Code ist wie folgt:
<div id="myApp">
<nav aria-label="Page navigation example">
<ul class="pagination">
<li class="page-item"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">1</a></li>
<li class="page-item"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">2</a></li>
<li class="page-item active"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">3</a></li>
<li class="page-item"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">4</a></li>
<li class="page-item"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">5</a></li>
</ul>
</nav>
</div>
reduziert die Codemenge mit der integrierten v-for
-Richtlinie von VUE. Diese Richtlinie wird verwendet, um Projekte in einer Schleife zu rendern. Das Element in diesem Beispiel ist die Seite selbst. Zus?tzlich zur Verwendung des Befehls v-for
sollten Sie auch auf die Verwendung des Befehls v-bind
achten. Die v-bind
-Richtlinie verbindet das Attribut class
des Elements mit der VUE -Instanz. Die VUE -Instanz ist wie folgt definiert:
<div id="myApp"> <nav aria-label="An example with pagination"> <ul class="pagination"> <li v-for="page in totalPages" :class="{'page-item':true, 'active':(page === currentPage)}"> <a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">{{ page }}</a> </li> </ul> </nav> </div>
Diese Vue -Instanz ist sehr einfach. Das obige data
-Objekt enth?lt eine Eigenschaft mit dem Namen currentPage
. Wenn Sie die oben definierte HTML -Vorlage erneut besuchen, werden Sie feststellen, dass auf diese Eigenschaft verwiesen wird. Tats?chlich sieht das JavaScript -Objekt, das jeder Klassenbindung zugeordnet ist
var app = new Vue({ el: 'http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bmyApp', data: { totalPages: 5, currentPage: 3 } });Dieses Objekt definiert zwei Eigenschaften:
und page-item
. Es ist erw?hnenswert, dass dies die beiden in Schritt 1 diskutierten Namen der CSS -Klasse sind. In Schritt 2 sind diese beiden Klassenreferenzen im JavaScript -Objekt zu Eigenschaftsnamen geworden. Der mit diesen Eigenschaftsnamen verbundene Wert ist ein JavaScript -Ausdruck. Wenn der Ausdruck auf echte Werte bewertet wird, wird die CSS -Klasse einbezogen. Wenn der Ausdruck auf False bewertet wird, enth?lt active
die CSS -Klasse nicht. Lassen Sie uns unter Berücksichtigung dieser Regeln jedes Attribut betrachten. Der Wert der ersten Eigenschaft ist . Dieser hartcodierte Wert wird verwendet, da die Klasse page-item
immer erforderlich ist. Die zweite Eigenschaft true
verwendet JavaScript -Ausdrücke. Wenn dieser Ausdruck wahr ist, wird die page-item
-Kl?ufe angewendet. Dies erm?glicht es uns, die active
-Klasse bedingt entsprechend dem Wert von active
zu anwenden. Eine andere M?glichkeit, die currentPage
-Klasse bedingt anzuwenden, besteht darin, an ein Array zu binden. active
active
Bindung mit Array -Syntax
vue erm?glicht es, Listen der CSS -Klassen durch Bindung an ein Array anzuwenden. Wenn Sie die Array -Syntax verwenden m?chten, wird die in Schritt 1 angezeigte HTML:
Version mit der Array -Syntax ausführen. Der einzige Unterschied besteht darin, dass Arrays für Klassenbindungen verwendet werden. Diese Alternative erfordert das Vorhandensein von zwei anderen Eigenschaften in Vues
{'page-item':true, 'active':(page === currentPage)}-Objekt. Diese beiden Eigenschaften sind:
und data
. Der aktualisierte Vue -Initialisierungscode, der diese Eigenschaften enth?lt, lautet wie folgt: pageItemClass
activeClass
<div id="myApp"> <nav aria-label="An example with pagination"> <ul class="pagination"> <li v-for="page in totalPages" :class="[pageItemClass, (page === currentPage) ? activeClass : '']"> <a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">{{ page }}</a> </li> </ul> </nav> </div>-Objekts zu, der Code in der Vorlage ist bei der Verwendung von Array -Syntax jedoch etwas pr?gnanter. Die Objektsyntax ist kompakter. Die Auswahl zwischen Objektsyntax und Array -Syntax h?ngt von der pers?nlichen Pr?ferenz ab. Beide Methoden scheinen HTML -Vorlagen komplizierter zu machen. Aber hier ist tats?chlich mehr drauf. Tats?chlich trennen wir den Fokus. Wir erstellen eine datengesteuerte Vorlage. Dies erleichtert die Prüfung der Ansicht und leichter zu warten, wenn die Anwendung w?chst.
data
Ich hoffe, dieser Artikel wird Ihnen hilfreich sein. Wenn Sie mehr über Vue.js erfahren m?chten, k?nnen Sie sich andere Vue -Inhalte auf SitePoint ansehen.
(Folgendes ist eine pseudooriginale Erstellung des FAQ-Teils im Originaltext, wobei die ursprüngliche Bedeutung beibeh?lt, aber den Ausdruck umgeschrieben hat)
FAQs bei der Anwendung von CSS -Klassen in VUE.JS bedingten
Wie verwendet ich tern?re Operatoren für die bedingte Klassenbindung? In Vue.js k?nnen tern?re Operatoren zur bedingten Klassenbindung verwendet werden. Dies ist ein einfacher und effizienter Weg, um auf der Grundlage der Bedingungen zwischen zwei Klassen zu wechseln. Beispiele sind wie folgt: In diesem Beispiel wird die Bedingung wahr, wenn die Bedingung falsch ist, Wie kann man mehrere Klassen in vue.js bedingt binden?
wahr,
Ja, bedingte Klassenbindung kann in Vue.js. verwendet werden. Computereigenschaften sind nützlich, wenn die Ermittlung der Logik einer Klasse komplex ist. Beispiele sind wie folgt:
Definieren Sie in der VUE -Instanz
In Vue.js k?nnen statische Klassen und Bindungsklassen kombiniert werden. Dies ist sehr nützlich, wenn Sie immer eine bestimmte Klasse anwenden müssen, aber Sie müssen auch andere Klassen bedingt anwenden. Beispiele sind wie folgt:
in diesem Beispiel wird werden jeweils
vue.js erm?glicht eine bedingte Bindung von Inline -Stilen mithilfe der Objektsyntax. Dies ist nützlich, wenn bestimmte Stile gem?? den Bedingungen angewendet werden müssen. Beispiele sind wie folgt:
In diesem Beispiel ist die Farbe rot und wenn wahr ist. Das obige ist der detaillierte Inhalt vonSo wenden Sie eine CSS -Klasse in Vue.js bedingt an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!<div :class="condition ? 'classA' : 'classB'"></div>
classA
wird angewendet. Die Bedingung kann jeder gültige JavaScript -Ausdruck sein. classB
<div :class="{ 'classA': conditionA, 'classB': conditionB }"></div>
conditionA
wird angewendet; Sowohl classA
als auch conditionB
k?nnen jeder gültige JavaScript -Ausdruck sein. classB
conditionA
conditionB
K?nnen Sie berechnete Attribute für die bedingte Klassenbindung in Vue.js verwenden? <div :class="computedClass"></div>
als berechnete Eigenschaft: computedClass
In diesem Beispiel gibt das berechnete Attribut <div id="myApp">
<nav aria-label="Page navigation example">
<ul class="pagination">
<li class="page-item"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">1</a></li>
<li class="page-item"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">2</a></li>
<li class="page-item active"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">3</a></li>
<li class="page-item"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">4</a></li>
<li class="page-item"><a class="page-link" href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">5</a></li>
</ul>
</nav>
</div>
computedClass
Wie kann man statische und gebundene Klassen in Vue.js kombinieren? <div :class="['staticClass', { 'classA': conditionA, 'classB': conditionB }]"></div>
immer angewendet, und staticClass
bzw. classA
angewendet. classB
conditionA
conditionB
Wie kann man Inline -Stile in vue.js bedingt binden? <div :style="{ color: conditionA ? 'red' : 'blue', fontSize: conditionB ? '12px' : '16px' }"></div>
falsch ist, ist die Farbe blau. In ?hnlicher Weise betr?gt die Schriftgr??e conditionA

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

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

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

Clothoff.io
KI-Kleiderentferner

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

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)

Es gibt drei g?ngige M?glichkeiten, HTTP-Anforderungen in Node.js zu initiieren: Verwenden Sie integrierte Module, Axios und Knotenfetch. 1. Verwenden Sie das integrierte HTTP/HTTPS-Modul ohne Abh?ngigkeiten, das für grundlegende Szenarien geeignet ist, jedoch eine manuelle Verarbeitung von Datengen?hten und Fehlerüberwachung erfordert, z. 2.Axios ist eine auf Versprechen basierende Bibliothek von Drittanbietern. Es verfügt über eine kurze Syntax und leistungsstarke Funktionen, unterstützt Async/Auseait, automatische JSON -Konvertierung, Interceptor usw. Es wird empfohlen, asynchrone Anforderungsvorg?nge zu vereinfachen. 3.Node-Fetch bietet einen Stil ?hnlich dem Browser-Abruf, basierend auf Versprechen und einfacher Syntax

JavaScript -Datentypen sind in primitive Typen und Referenztypen unterteilt. Zu den primitiven Typen geh?ren String, Anzahl, Boolesche, Null, undefiniertes und Symbol. Die Werte sind unver?nderlich und Kopien werden bei der Zuweisung von Werten kopiert, sodass sie sich nicht gegenseitig beeinflussen. Referenztypen wie Objekte, Arrays und Funktionen speichern Speicheradressen, und Variablen, die auf dasselbe Objekt zeigen, wirkt sich gegenseitig aus. Typeof und Instanz k?nnen verwendet werden, um die Typen zu bestimmen, aber auf die historischen Probleme der TypeOfnull zu achten. Das Verst?ndnis dieser beiden Arten von Unterschieden kann dazu beitragen, einen stabileren und zuverl?ssigeren Code zu schreiben.

Welches JavaScript -Framework ist die beste Wahl? Die Antwort besteht darin, die am besten geeigneten nach Ihren Bedürfnissen zu w?hlen. 1.React ist flexibel und kostenlos und für mittlere und gro?e Projekte geeignet, für die hohe Anpassungs- und Teamarchitekturf?higkeiten erforderlich sind. 2. Angular bietet vollst?ndige L?sungen, die für Anwendungen auf Unternehmensebene und langfristige Wartung geeignet sind. 3.. Vue ist einfach zu bedienen, geeignet für kleine und mittlere Projekte oder schnelle Entwicklung. Unabh?ngig davon, ob es einen technologischen Stack, die Teamgr??e, der Projektlebenszyklus gibt und ob SSR erforderlich ist, sind auch wichtige Faktoren für die Auswahl eines Rahmens. Kurz gesagt, es gibt keinen absolut besten Rahmen, die beste Wahl ist die, die Ihren Bedürfnissen entspricht.

Hallo, JavaScript -Entwickler! Willkommen in den JavaScript -Nachrichten dieser Woche! Diese Woche konzentrieren wir uns auf: Oracas Markenstreit mit Deno, neue JavaScript -Zeitobjekte werden von Browsern, Google Chrome -Updates und einigen leistungsstarken Entwickler -Tools unterstützt. Fangen wir an! Der Markenstreit von Oracle mit dem Versuch von Deno Oracle, ein "JavaScript" -Marke zu registrieren, hat Kontroversen verursacht. Ryan Dahl, der Sch?pfer von Node.js und Deno, hat eine Petition zur Absage der Marke eingereicht, und er glaubt, dass JavaScript ein offener Standard ist und nicht von Oracle verwendet werden sollte

Versprechen ist der Kernmechanismus für den Umgang mit asynchronen Operationen in JavaScript. Das Verst?ndnis von Kettenanrufen, Fehlerbehebung und Kombination ist der Schlüssel zum Beherrschen ihrer Anwendungen. 1. Der Kettenaufruf gibt ein neues Versprechen durch .then () zurück, um asynchrone Prozessverkampferung zu realisieren. Jeder. Dann () erh?lt das vorherige Ergebnis und kann einen Wert oder ein Versprechen zurückgeben; 2. Die Fehlerbehandlung sollte .Catch () verwenden, um Ausnahmen zu fangen, um stille Ausf?lle zu vermeiden, und den Standardwert im Fang zurückgeben, um den Prozess fortzusetzen. 3. Combinatoren wie Promise.All () (erfolgreich erfolgreich erfolgreich nach allen Erfolg), Versprechen.Race () (Die erste Fertigstellung wird zurückgegeben) und Versprechen.Allsettled () (Warten auf alle Fertigstellungen)

Cacheapi ist ein Tool, das der Browser zur Cache -Netzwerkanfragen bereitstellt, das h?ufig in Verbindung mit dem Servicearbeiter verwendet wird, um die Leistung der Website und die Offline -Erfahrung zu verbessern. 1. Es erm?glicht Entwicklern, Ressourcen wie Skripte, Stilbl?tter, Bilder usw. Zu speichern; 2. Es kann die Cache -Antworten entsprechend den Anfragen übereinstimmen. 3. Es unterstützt das L?schen bestimmter Caches oder das L?schen des gesamten Cache. 4.. Es kann Cache -Priorit?ts- oder Netzwerkpriorit?tsstrategien durch Servicearbeiter implementieren, die sich auf Fetch -Ereignisse anh?ren. 5. Es wird h?ufig für die Offline -Unterstützung verwendet, die wiederholte Zugriffsgeschwindigkeit, die Vorspannungs -Schlüsselressourcen und den Inhalt des Hintergrundaktualisierungss beschleunigen. 6. Wenn Sie es verwenden, müssen Sie auf die Cache -Versionskontrolle, Speicherbeschr?nkungen und den Unterschied zum HTTP -Caching -Mechanismus achten.

JavaScript-Array-integrierte Methoden wie .Map (), .filter () und .Reduce () k?nnen die Datenverarbeitung vereinfachen. 1) .Map () wird verwendet, um Elemente eins in eins um Neuarrays zu konvertieren; 2) .Filter () wird verwendet, um Elemente durch Bedingung zu filtern; 3) .Reduce () wird verwendet, um Daten als einzelner Wert zu aggregieren; Missbrauch sollte bei der Verwendung vermieden werden, was zu Nebenwirkungen oder Leistungsproblemen führt.

Die Ereignisschleife von JavaScript verwaltet asynchrone Vorg?nge, indem sie Call -Stapel, Webapis und Task -Warteschlangen koordinieren. 1. Der Anrufstack führt synchronen Code aus, und wenn er auf asynchrone Aufgaben begegnet, wird er zur Verarbeitung an Webapi übergeben. 2. Nachdem das Webapi die Aufgabe im Hintergrund abgeschlossen hat, wird der Rückruf in die entsprechende Warteschlange (Makroaufgabe oder Micro -Aufgabe) eingebaut. 3. Die Ereignisschleife prüft, ob der Anrufstapel leer ist. Wenn es leer ist, wird der Rückruf aus der Warteschlange herausgenommen und zur Ausführung in den Anrufstapel geschoben. V. 5. Das Verst?ndnis der Ereignisschleife hilft zu vermeiden, den Haupt -Thread zu blockieren und die Codeausführungsreihenfolge zu optimieren.
