Mehrere Möglichkeiten zur Verwendung der V-Bind-Bindung mit Klasse und Stil in Vue

Mehrere Möglichkeiten zur Verwendung der V-Bind-Bindung mit Klasse und Stil in Vue

Das Hinzufügen/Entfernen von Klassen zu Elementen ist ein sehr gängiges Verhalten in der Projektentwicklung. Beispielsweise fügt die Website-Navigation dem ausgewählten Element eine aktive Klasse hinzu, um zwischen ausgewählten und nicht ausgewählten Stilen zu unterscheiden. Neben der Navigation wird diese Methode auch an vielen anderen Stellen verwendet, um Auswahl und Abwahl zu handhaben.

Zusätzlich zum Festlegen von Klassen legen wir in unseren Projekten häufig Inline-Stile von Elementen fest. In der jQuery-Ära verwendeten die meisten von uns addClass und removeClass in Kombination, um das Hinzufügen/Löschen von Klassen zu handhaben, und verwendeten die Methode css(), um den Inline-Stil von Elementen festzulegen/abzurufen.

Wie gehen wir also mit dieser Art von Effekt in Vue um? In Vue können wir die Direktive v-bind verwenden, um unsere Klasse und unseren Stil zu binden. Als Nächstes sehen wir uns an, welche Methoden Vue zum Binden bereitstellt.

Objektsyntaxbindungsklasse

Das Wechseln zwischen Registerkarten ist einer unserer häufigsten Effekte. Wie hebt man den ausgewählten Titel hervor? Die übliche Methode besteht darin, die Klasse dynamisch zu wechseln.

<div id="app">
    <div Klasse="Schaltflächengruppe">
      <Schaltfläche
        v-for="(Tabulator, Index) in Tabulatoren" 
        v-bind:Schlüssel="Index" 
        v-bind:Klasse="{aktiv: aktuellerTab === Tab}" 
        v-on:click="aktuellerTab = Tab"
      >{{tab}}</button>
    </div>
    <Komponente v-bind:is="currentTabComponent"></Komponente>
</div>
<Skript>
Vue.component("tab1", {
    "Vorlage": "<p>Dies ist Registerkarte 1</p>"
});
Vue.component("tab2", {
  "Vorlage": "<p>Dies ist Registerkarte 2</p>"
});
Vue.component("tab3", {
  "Vorlage": "<p>Dies ist Registerkarte 3</p>"
});
var vm = neuer Vue({
  el: "#app",
  Daten: {
    currentTab: "tab1",
    Registerkarten: ["Registerkarte1", "Registerkarte2", "Registerkarte3"]
  },
  berechnet: {
    aktuelleTabKomponente() {
      gib dies.currentTab zurück;
    }
  }
});
</Skript>

Aus dem Beispiel können wir erkennen, dass das Vorhandensein der aktiven Klasse davon abhängt, ob der folgende Ausdruck wahr oder falsch ist. Wenn er wahr ist, wird dem Element die aktive Klasse hinzugefügt, andernfalls nicht.

Wir können nicht nur eine Klasse hinzufügen, sondern auch mehrere Klassen gleichzeitig, und sie können neben den ursprünglichen Klassen existieren.

<Schaltfläche 
    Klasse="btn"
    v-bind:class="{'btn-primary': istPrimär, aktiv: istAktiv}"
></button>
<Skript>
    var vm = neuer Vue({
      el: "#app",
      Daten: {
        isPrimary: wahr,
        istAktiv: wahr  
      }
    });
</Skript>

Das Rendering-Ergebnis ist:

<button class="btn btn-primary aktiv"></button>

Wir können ein Datenobjekt auch direkt binden

<button class="btn" v-bind:class="activePrimary"></button>
<Skript>
    var vm = neuer Vue({
      el: "#app",
      Daten: {
        aktivPrimär: {
          'btn-primary': wahr, 
          aktiv: wahr
        }
      }
    });
</Skript>

Das Rendering-Ergebnis ist das gleiche wie oben

<button class="btn btn-primary aktiv"></button>

Darüber hinaus können wir auch berechnete Eigenschaften verwenden, um die Klasse des Elements zu binden

<button v-bind:class="activeClass"></button>
<Skript>
    var vm = neuer Vue({
      el: "#app",
      Daten: {
        istAktiv: wahr
      },
      berechnet: {
        aktiveKlasse() {
          zurückkehren {
            aktiv: this.isActive
          }
        }
      }
    });
</Skript>

Array-Syntax-Bindungsklasse

Vue unterstützt auch das Hinzufügen von Klassen zu Elementen mithilfe von Arrays. Lassen Sie uns das obige Beispiel zum Hinzufügen von Klassen zu Objekten ändern.

<button class="btn" v-bind:class="[primary, aktiv]"></button>
<Skript>
    var vm = neuer Vue({
      el: "#app",
      Daten: {
        primär: 'btn-primary',
        aktiv: 'btn-aktiv'  
      }
    });
</Skript>

In der obigen Methode binden wir eine feste Klasse. Was ist, wenn wir die Klasse dynamisch wechseln müssen? Wir können ternäre Ausdrücke verwenden oder Objektsyntax mit Arrays nutzen.

//Ternärer Ausdruck <button v-bind:class="[isActive ? active : '', primary]"></button>
<Skript>
    var vm = neuer Vue({
      el: "#app",
      Daten: {
        istAktiv: wahr,
        primär: 'btn-primary',
        aktiv: 'btn-aktiv'  
      }
    });
</Skript>
 
//Verwenden der Objektsyntax in einem Array <button v-bind:class="[{active: isActive}, primary]"></button>
<Skript>
    var vm = neuer Vue({
      el: "#app",
      Daten: {
        istAktiv: wahr,
        primär: „btn-primär“
      }
    });
</Skript>

Objektsyntaxbindungsstil

Die Objektsyntax beim Binden von Inline-Styles ähnelt stark CSS, ist aber eigentlich ein Javascript-Objekt. Wir können CamelCase oder durch Bindestrich getrennte Namen verwenden.

<div v-bind:style="{color: colorStyle, backgroundColor: background}">
Objektsyntax
<Skript>
    var vm = neuer Vue({
      el: "#app",
      Daten: {
        Farbstil: "rot",
        Hintergrund: „blau“
      }
    });
</Skript>

Ähnlich wie Klassen können wir auch Datenobjekte zum Binden verwenden.

<div v-bind:style="style">Objektsyntax</div>
<Skript>
    var vm = neuer Vue({
      el: "#app",
      Daten: {
        Stil: {
          Farbe: 'rot',
          Hintergrundfarbe: „blau“
        }
      }
    });
</Skript>

Array-Syntaxbindungsstil

Vue ermöglicht es uns, mehrere Stilobjekte gleichzeitig an dasselbe Objekt zu binden.

<div v-bind:style="[style, fontStyle]">Objektsyntax</div>
<Skript>
    var vm = neuer Vue({
      el: "#app",
      Daten: {
        Stil: {
          Farbe: 'rot',
          Hintergrundfarbe: „blau“
        },
        Schriftstil: {
          Schriftgröße: '18px'
        }
      }
    });
</Skript>

Damit ist dieser Artikel über verschiedene Möglichkeiten zur Verwendung von V-Bind-Binding mit Klasse und Stil in Vue abgeschlossen. Weitere Informationen zu Vue V-Bind-Binding finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Ähnlichkeiten und Unterschiede zwischen V-Model- und V-Bind-Bindungsdaten in Vue
  • Grundlegendes zur dynamischen Attributdatenbindung von Vue (v-bind-Anweisung) in einem Artikel
  • Verwenden Sie Vues v-for und v-bind, um die Listenfarben zu ändern
  • Detaillierte Erklärung der benutzerdefinierten Anweisungen für v-bind:style-Effekte in Vue
  • Vue v-bind dynamische Bindungsklasseninstanzmethode
  • Vue-Direktive Formularsteuerung Bindung v-model v-model kombiniert mit v-bind
  • Vue-Grundlagen: V-Bind-Attribute, Klassen- und Stilverwendungsanalyse
  • Eine kurze Analyse der Verwendung und des Unterschieds von V-Bind und V-Model in Vue.js
  • Detaillierte Erläuterung der allgemeinen Anweisungen von Vue v-if, v-for, v-show, v-else, v-bind, v-on
  • In Vue verwendet v-bind den ternären Operator zum Binden von Klasseninstanzen
  • Tab-Methode mit v-bind:class in vue
  • V-Bind in Vue verstehen

<<:  Beispiel eines Befehls zur Linux-Hardwarekonfiguration

>>:  Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.12

Artikel empfehlen

CSS3-Bézierkurven-Beispiel: Erstellen von Link-Hover-Animationseffekten

Wir verwenden animierte CSS3-Übergänge, um einen ...

Erste Schritte Tutorial für Anfänger ④: So binden Sie Unterverzeichnisse

Um zu verstehen, was das bedeutet, müssen wir zunä...

Lösung für den MySQL-Root-Passwortfehler Nummer 1045

MySQL-Dienst stoppen Klicken Sie in Windows mit d...

Detaillierte Erklärung der jQuery-Methodenattribute

Inhaltsverzeichnis 1. Einführung in jQuery 2. jQu...

jQuery-Plugin zur Implementierung eines gestapelten Menüs

Jeden Tag ein jQuery-Plugin - gestapeltes Menü. Z...

Detaillierte Erklärung des daily_routine Beispielcodes in Linux

Schauen Sie sich zunächst den Beispielcode an: #/...

Vue implementiert die Funktionen Vergrößern, Verkleinern und Ziehen

In diesem Artikelbeispiel wird der spezifische Co...

js Array-Einträge () Holen Sie sich die Iterationsmethode

Inhaltsverzeichnis 1. Detaillierte Syntax der Met...

Beispiele für die Verwendung des Linux-Touch-Befehls

Detaillierte Erklärung des Linux-Touch-Befehls: 1...

Detaillierte Erläuterung des virtuellen DOM in der Vue-Quellcodeanalyse

Warum brauchen wir virtuellen Dom? Virtual DOM wu...

JavaScript Snake-Implementierungscode

In diesem Artikelbeispiel wird der spezifische Ja...

Befehl zum Anzeigen der Erstellungszeit der Binlog-Datei unter Linux

Inhaltsverzeichnis Hintergrund analysieren Verfah...