So verwenden Sie CSS-Klassen bedingt in Vue
Oft muss der CSS-Klassenname eines Elements geändert werden, wenn das Web ausgeführt wird. Beim Ändern von Klassennamen ist es jedoch manchmal am besten, den Stil bedingt anzuwenden. Sie haben beispielsweise einen Umblättereffekt. Der Umblättereffekt hat normalerweise einen Hervorhebungseffekt, der verwendet wird, um dem Benutzer die aktuelle Seite anzuzeigen, was für den Benutzer sehr hilfreich ist. Der Stil des Elements wird abhängig von der aktuell angezeigten Seite festgelegt.
Dieser Artikel stellt hauptsächlich die bedingte Verwendung von CSS-Klassen in Vue vor. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.
Ein üblicher Umblättereffekt sieht so aus:
In diesem Beispiel gibt es fünf Seiten, von denen jeweils nur eine ausgewählt ist. Wenn Sie mit Bootstrap einen Paginator erstellen, wird auf die ausgewählte Seite eine CSS-Klasse namens „active“ auf die Listenelemente angewendet. Wenn es sich bei der Seite um die aktuell angezeigte Seite handelt, soll diese Klasse angewendet werden. Mit anderen Worten: Sie möchten, dass der Name der aktiven Klasse bedingt angewendet wird. In Vue wird eine Methode bereitgestellt, um CSS-Klassen bedingt auf Elemente anzuwenden. Diese Technologie wird Ihnen im folgenden Inhalt demonstriert.
Um eine CSS-Klasse zur Laufzeit bedingt anzuwenden, muss sie an ein JavaScript-Objekt gebunden werden. Um diese Aufgabe erfolgreich abzuschließen, müssen zwei Schritte abgeschlossen werden. Zuerst müssen Sie sicherstellen, dass der CSS-Klassenname definiert ist, und dann die Klassenbindung in der Vorlage erstellen. Ich werde diese Schritte an anderer Stelle in diesem Artikel ausführlich erläutern.
Schritt 1: Definieren Sie Ihre CSS-Klassennamen
Stellen Sie sich vor, dass die fünf im Bild oben gezeigten Seitenempfehlungen über einen bestimmten Zeitraum hinweg mit HTML-Code wie dem folgenden erstellt wurden Konstruiert:
<p id="myApp"> <nav aria-label="Page navigation example"> <ul class="pagination"> <li class="page-item"><a class="page-link" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >1</a></li> <li class="page-item"><a class="page-link" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >2</a></li> <li class="page-item active"><a class="page-link" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >3</a></li> <li class="page-item"><a class="page-link" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >4</a></li> <li class="page-item"><a class="page-link" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >5</a></li> </ul> </nav> </p>
Hinweis: Jedes Listenelement li in diesem Codeausschnitt repräsentiert jede Seite. Das geänderte Element verweist auf den Klassennamen des Seitenelements. In diesem Code wird das Bootstrap-CSS-Framework verwendet. Wenn es jedoch nicht definiert ist, stellen Sie sicher, dass es irgendwo definiert ist. Die zweite CSS-Klasse ist jedoch für diesen Artikel am relevantesten. Der CSS-Klassenname
active wird verwendet, um die aktuell ausgewählte Seite zu identifizieren. In diesem Artikel wird diese CSS-Klasse auch häufig im Bootstrap-Framework verwendet. Wie im Codeausschnitt oben gezeigt, wird die aktive Klasse nur im dritten Listenelementelement verwendet. Wie Sie vielleicht erraten haben, ist dies die CSS-Klasse, die Sie bedingt anwenden möchten. Dazu müssen Sie ein JavaScript-Objekt hinzufügen.
Schritt 2: Binden Sie Ihren CSS-Klassennamen
Lassen Sie uns den Code in Schritt eins neu strukturieren. Beim Erstellen von Klassenbindungen in Vorlagen haben Sie zwei Hauptoptionen: Verwenden Sie die Objektsyntax oder die Array-Syntax. Als nächstes zeige ich Ihnen, wie Sie beide Methoden verwenden.
Objektsyntax verwenden
Um eine Klassenbindung mithilfe der Objektsyntax zu erstellen, müssen Sie JavaScript-Ausdrücke verwenden. Die Ausdrücke, die wir verwenden werden, sind im folgenden Code zu sehen. Der relevante Code lautet wie folgt:
<p id="myApp"> <nav aria-label="An example with pagination"> <ul class="pagination"> <li v-for="page in totalPages" v-bind:class="{'page-item':true, 'active':(page === currentPage)}"> <a class="page-link" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >{{ page }}</a> </li> </ul> </nav> </p>
Um die Codemenge zu reduzieren, wird hier die v-for-Direktive in Vue verwendet. Diese Direktive wird zum Rendern von Elementen in einer Schleife verwendet. Das Element in diesem Beispiel ist die Seite selbst. Zusätzlich zur Verwendung der v-for-Direktive wird auch die v-bind-Direktive verwendet. Die
v-bind-Direktive bindet das Klassenattribut eines Elements an eine Instanz von Vue. Eine Instanz von Vue ist wie folgt definiert:
var app = new Vue({ el: '#myApp', data: { totalPages: 5, currentPage: 3 } });
Das Datenobjekt auf dieser Vue-Instanz enthält eine Eigenschaft namens currentPage. Wenn Sie die oben definierte HTML-Vorlage erneut aufrufen, werden Sie feststellen, dass auf dieses Attribut verwiesen wird. In der Praxis sieht das jeder Klassenbindung zugeordnete JavaScript-Objekt wie folgt aus:
{'page-item':true, 'active':(page === currentPage)}
Dieses Objekt definiert zwei Eigenschaften: page-item und active . Es ist erwähnenswert, dass dies die Namen der beiden CSS-Klassen sind, die in Schritt eins besprochen wurden. In Schritt 2 wurden diese beiden Klassenreferenzen zu Eigenschaftsnamen im JavaScript-Objekt. Die mit diesen Eigenschaftsnamen verknüpften Werte sind JavaScript-Ausdrücke. Wenn der Ausdruck true ergibt, wird der CSS-Klassenname einbezogen. Wenn der Ausdruck false ergibt, ist die CSS-Klasse nicht enthalten. Wenn diese Regeln gelten, schauen wir uns jede Immobilie an.
Das erste Attributseitenelement hat einen wahren Wert. Dieser fest codierte Wert wird verwendet, da wir immer die Klasse „Seitenelement“ einschließen möchten. Die zweite Eigenschaft ist active , die einen JavaScript-Ausdruck verwendet. Wenn dieser Ausdruck wahr ist, wird die aktive Klasse angewendet. Dadurch können wir die aktive Klasse basierend auf dem Wert von currentPage bedingt anwenden.
body { width: 100vw; height: 100vh; display: flex; justify-content: center; align-items: center; } .pagination { justify-content: center; }
Jedes Mal, wenn der Wert von currentPage geändert wird, wird „active“ auf das entsprechende Listenelement angewendet. Zum Beispiel der folgende Effekt:
Eine andere Möglichkeit, die aktive Klasse bedingt anzuwenden, besteht darin, sie an ein Array zu binden.
Array-Syntax verwenden
Vue ermöglicht das Hinzufügen von CSS-Klassennamen zu Listen durch Bindung an ein Array. Wenn Sie die Array-Syntax verwenden möchten, muss die HTML-Struktur in Schritt 1 angepasst werden. Der geänderte Code lautet wie folgt:
<p id="myApp"> <nav aria-label="An example with pagination"> <ul class="pagination"> <li v-for="page in totalPages" v-bind:class="[pageItemClass, (page === currentPage) ? activeClass : '']"> <a class="page-link" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >{{ page }}</a> </li> </ul> </nav> </p>
和上一个示例的区别就是类绑定上使用数组。这种替代方法需要在 data 对象中添加两个额外的属性。这两个属笥是 pageItemClass 和 activeClass 。更新Vue初始化的代码:
var app = new Vue({ el: '#myApp', data: { totalPages: 5, currentPage: 3, pageItemClass: 'page-item', activeClass: 'active' } });
正如你看到了, data 对象变了,虽然 data 对象大小变大了,但是使用数组语法时,模板中的代码稍微干净一些。对象语法更紧凑一些。
对象语法和数组语法之间的选择归结为个人爱好。
这两种方法都可能使你的HTML模板更加复杂。然而,实际上还有更多的事情发生。在实现中,我们正在关注如何分离。我们正在创建一个由数据驱动的模板。这使用的视图更容易测试,并且在应用程序变大时更容易维护。
总结
本文根据 @Chad Campbell 的《 Conditionally Applying a CSS Class in Vue.js 》所译,整个译文带有我们自己的理解与思想,如果译得不好或有不对之处还请同行朋友指点。如需转载此译文,需注明英文出处: https://www.sitepoint.com/conditionally-applying-css-class-vue-js/ 。
相关推荐:
Das obige ist der detaillierte Inhalt vonSo verwenden Sie CSS-Klassen bedingt 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

In Vue.js gibt das Platzhalterattribut den Platzhaltertext des Eingabeelements an, der angezeigt wird, wenn der Benutzer keinen Inhalt eingegeben hat, Eingabetipps oder Beispiele bereitstellt und die Barrierefreiheit des Formulars verbessert. Seine Verwendung besteht darin, das Platzhalterattribut für das Eingabeelement festzulegen und das Erscheinungsbild mithilfe von CSS anzupassen. Zu den Best Practices gehört es, relevant für die Eingabe zu sein, kurz und klar zu sein, Standardtexte zu vermeiden und die Barrierefreiheit zu berücksichtigen.

Das Span-Tag kann Stile, Attribute oder Verhaltensweisen zum Text hinzufügen. Es wird verwendet, um Stile wie Farbe und Schriftgröße hinzuzufügen. Legen Sie Attribute wie ID, Klasse usw. fest. Zugehörige Verhaltensweisen wie Klicks, Hovers usw. Markieren Sie Text zur weiteren Bearbeitung oder zum Zitieren.

REM in CSS ist eine relative Einheit relativ zur Schriftgröße des Stammelements (HTML). Es weist die folgenden Merkmale auf: relativ zur Schriftgröße des Stammelements, nicht vom übergeordneten Element beeinflusst. Wenn sich die Schriftgröße des Stammelements ändert, werden Elemente, die REM verwenden, entsprechend angepasst. Kann mit jeder CSS-Eigenschaft verwendet werden. Zu den Vorteilen der Verwendung von REM gehören: Reaktionsfähigkeit: Halten Sie den Text auf verschiedenen Geräten und Bildschirmgrößen lesbar. Konsistenz: Stellen Sie sicher, dass die Schriftgrößen auf Ihrer gesamten Website einheitlich sind. Skalierbarkeit: Ändern Sie die globale Schriftgröße ganz einfach, indem Sie die Schriftgröße des Stammelements anpassen.

Es gibt fünf Möglichkeiten, Bilder in Vue einzuführen: über URL, Require-Funktion, statische Datei, V-Bind-Direktive und CSS-Hintergrundbild. Dynamische Bilder können in den berechneten Eigenschaften oder Listenern von Vue verarbeitet werden, und gebündelte Tools können zum Optimieren des Bildladens verwendet werden. Stellen Sie sicher, dass der Pfad korrekt ist, da sonst ein Ladefehler auftritt.

Knoten sind Entitäten im JavaScript-DOM, die HTML-Elemente darstellen. Sie stellen ein bestimmtes Element auf der Seite dar und können verwendet werden, um auf dieses Element zuzugreifen und es zu bearbeiten. Zu den gängigen Knotentypen gehören Elementknoten, Textknoten, Kommentarknoten und Dokumentknoten. Über DOM-Methoden wie getElementById() können Sie auf Knoten zugreifen und diese bearbeiten, einschließlich der Änderung von Eigenschaften, dem Hinzufügen/Entfernen untergeordneter Knoten, dem Einfügen/Ersetzen von Knoten und dem Klonen von Knoten. Das Durchqueren von Knoten hilft bei der Navigation innerhalb der DOM-Struktur. Knoten sind nützlich für die dynamische Erstellung von Seiteninhalten, die Ereignisbehandlung, Animation und Datenbindung.

Browser-Plugins werden normalerweise in den folgenden Sprachen geschrieben: Front-End-Sprachen: JavaScript, HTML, CSS Back-End-Sprachen: C++, Rust, WebAssembly Andere Sprachen: Python, Java

1. Öffnen Sie zunächst das Einstellungssymbol in der unteren linken Ecke und klicken Sie auf die Option „Einstellungen“. 2. Suchen Sie dann die CSS-Spalte im Sprungfenster. 3. Ändern Sie abschließend die Dropdown-Option im Menü „Unbekannte Eigenschaften“ in die Schaltfläche „Fehler“. .

In Vue.js wird ref in JavaScript verwendet, um auf ein DOM-Element zu verweisen (zugänglich für Unterkomponenten und das DOM-Element selbst), während id zum Festlegen des HTML-ID-Attributs verwendet wird (kann für CSS-Stil, HTML-Markup und JavaScript-Suche verwendet werden). ).
