Eine häufige Anforderung für die Datenbindung ist die Manipulation der Klassenliste eines Elements und seiner Inline-Stile. Da es sich bei beiden um Attribute handelt, können wir sie mit v-bind verarbeiten: Wir müssen lediglich die endgültige Zeichenfolge des Ausdrucks auswerten. Die Verkettung von Zeichenfolgen ist jedoch umständlich und fehleranfällig. Daher verbessert Vue.js v-bind speziell, wenn es mit Klassen und Stilen verwendet wird. Der Ergebnistyp eines Ausdrucks kann neben Strings auch ein Objekt oder ein Array sein.
HTML-Klasse binden
Sie können zwar Mustache-Tags verwenden, um Klassen zu binden, z. B. „{% raw %}class=“{{ className }}“{% endraw %}“, aber wir Es wird nicht empfohlen, diese Schreibmethode mit „v-bind:class“ zu mischen. Sie können nur eines von beiden wählen!
Objektsyntax
Wir können v-bind:class an ein Objekt übergeben, um Klassen dynamisch zu wechseln. Beachten Sie, dass die v-bind:class-Direktive mit dem normalen Klassenattribut koexistieren kann:
<div class="static" v-bind:class="{ 'class-a': isA, 'class-b': isB }"></div> data: { isA: true, isB: false }
wird wie folgt gerendert:
Wenn sich isA und isB ändern, wird die Klassenliste entsprechend aktualisiert. Wenn beispielsweise isB wahr wird, wird die Klassenliste zu „statische Klasse-a-Klasse-b“.
Sie können ein Objekt auch direkt in die Daten binden:
<div v-bind:class="classObject"></div> data: { classObject: { 'class-a': true, 'class-b': false } }
Wir können hier auch eine berechnete Eigenschaft des zurückgegebenen Objekts binden. Dies ist ein häufig verwendetes und leistungsstarkes Muster.
Array-Syntax
Wir können ein Array an v-bind:class übergeben, um eine Klassenliste anzuwenden:
<div v-bind:class="[classA, classB]"> data: { classA: 'class-a', classB: 'class-b' }
gerendert als:
Wenn Sie auch Klassen in der Liste basierend auf Bedingungen wechseln möchten, können Sie einen ternären Ausdruck verwenden Formel:
Dieses Beispiel fügt immer KlasseA hinzu, aber nur, wenn isB wahr ist KlasseB.
Allerdings ist das Schreiben auf diese Weise etwas umständlich, wenn mehrere bedingte Klassen vorhanden sind. In 1.0.19+ können Sie die Objektsyntax innerhalb der Array-Syntax verwenden:
Inline-Stil binden
Objektsyntax
Die Objektsyntax von v-bind:style ist sehr intuitiv – sie sieht sehr nach CSS aus, ist aber eigentlich ein JavaScript-Objekt. CSS-Eigenschaftsnamen können in CamelCase oder Kebab-Case benannt werden:
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div> data: { activeColor: 'red', fontSize: 30 }
Normalerweise ist es besser, direkt an ein Stilobjekt zu binden, um die Vorlage übersichtlicher zu gestalten:
<div v-bind:style="styleObject"></div> data: { styleObject: { color: 'red', fontSize: '13px' } }
In ähnlicher Weise wird die Objektsyntax häufig in Verbindung mit berechneten Eigenschaften verwendet, die Objekte zurückgeben.
Array-Syntax
Die Array-Syntax von v-bind:style kann mehrere Stilobjekte auf ein Element anwenden:
Präfix automatisch hinzufügen
Wenn v-bind:style CSS-Eigenschaften verwendet, die Herstellerpräfixe erfordern, wie z. B. transform, erkennt Vue.js automatisch das entsprechende Präfix und fügt es hinzu .
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt. Ich hoffe auch, dass jeder die PHP-Chinesisch-Website abonniert.
Weitere Artikel zum Thema Klassen- und Stilbindung, die Sie jeden Tag in Vue.js lernen müssen, finden Sie auf der chinesischen PHP-Website!