So kapseln Sie Timerkomponenten in Vue3

So kapseln Sie Timerkomponenten in Vue3

Hintergrund

Wenn Sie auf manchen Webseiten von Einkaufszentren die Produktdetails öffnen, wird dort ein Zähler angezeigt, mit dem Sie die Kaufmenge auswählen können. Ein solcher Timer wird nicht nur auf der Produktdetailseite, sondern auch im Warenkorb angezeigt. Der Timer kann dann in eine Komponente gekapselt werden, um eine bessere Wiederverwendung und spätere Wartung zu ermöglichen.

Landecode

<Vorlage>
  <div Klasse="xtx-numbox">
    <div Klasse="Bezeichnung"><Slot /></div>
    <div Klasse="numbox">
      <a href="javascript:;" @click="handleSub(-1)">-</a>
      <input Typ="Text" schreibgeschützt :Wert="Anzahl" />
      <a href="javascript:;" @click="handleSub(1)">+</a>
    </div>
  </div>
</Vorlage>
<Skript>
// Drittanbietermethode useVModel zum Implementieren der bidirektionalen Bindung import { useVModel } von '@vueuse/core'
Standard exportieren {
  Name: "XtxNumbox",
  Requisiten: {
    Modellwert: {
      Typ: Nummer,
      Standard: 1
    }
  },
  setup(Eigenschaften, { emit }) {
    //Die Methode useVModel erhält drei Parameter,
    // Parameter 1: benutzerdefinierte Eigenschaft „props“ empfängt Daten, die von der übergeordneten Komponente über die bidirektionale V-Model-Bindung übergeben werden // Parameter 2: in „props“ zu übergebende Daten // Parameter 3: gebundene Daten müssen die übergeordnete Komponente über das „Emit“-Ereignis benachrichtigen const num = useVModel(props, „modelValue“, emit)
    const handleSub = n => {
      wenn (n < 0) {
        num.value -= 1
        wenn (props.modelValue === 1) {
          Num.Wert = 1
        }
      } anders {
        num.value += 1
      }
    }
    return { handleSub, num }
  }
}
</Skript>
<style scoped lang="weniger">
.xtx-numbox {
  Anzeige: Flex;
  Elemente ausrichten: zentrieren;
  .Etikett {
    Breite: 60px;
    Farbe: #999;
    Polsterung links: 10px;
  }
  .numbox {
    Breite: 120px;
    Höhe: 30px;
    Rand: 1px durchgezogen #e4e4e4;
    Anzeige: Flex;
    > ein {
      Breite: 29px;
      Zeilenhöhe: 28px;
      Textausrichtung: zentriert;
      Hintergrund: #f8f8f8;
      Schriftgröße: 16px;
      Farbe: #666;
      &:erster-vom-Typ {
        Rahmen rechts: 1px durchgezogen #e4e4e4;
      }
      &:letzter-vom-Typ {
        Rahmen links: 1px durchgezogen #e4e4e4;
      }
    }
    > Eingabe {
      Breite: 60px;
      Polsterung: 0,5px;
      Textausrichtung: zentriert;
      Farbe: #666;
    }
  }
}
</Stil>

verwenden

<XtxNumbox v-model="num">Menge</XtxNumbox>

Wirkung

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Implementierung eines einfachen Timers basierend auf der Vue-Methode
  • Das Vue-CLI-Framework implementiert eine Timer-Anwendung
  • Verwenden von Vue zum Implementieren einer Timerfunktion
  • Vue.js implementiert eine einfache Timerfunktion
  • Vue implementiert eine einfache Timer-Komponente
  • So implementieren Sie den Vue-Timer
  • Detaillierte Verwendung des Vue-Timers
  • Lösen Sie das Problem, dass der Timer weiterhin ausgeführt wird, nachdem die Vue-Komponente zerstört wurde
  • Vue-Beispielcode mit Timer zum Erzielen eines Laufschrifteffekts
  • Implementierungscode der Vue-Timer-Komponente

<<:  MySQL-Lernprogramm Clustered Index

>>:  Detaillierte Erklärung der Ausführungsunterschiede zwischen count(1), count(*) und count(Spaltenname)

Artikel empfehlen

Lösung für die Willkommensmeldung im Notfallmodus beim Booten von CentOS7.4

Heute habe ich eine virtuelle Maschine für ein Ex...

js, um Sternblitzeffekte zu erzielen

In diesem Artikelbeispiel wird der spezifische Co...

Häufige Fehler und Gründe für MySQL-Verbindungsfehler

=================================================...

Die umfassendste Erklärung des Sperrmechanismus in MySQL

Inhaltsverzeichnis Vorwort Globale Sperre Vollstä...

Nginx-Praxis zur Optimierung hoher Parallelität

1. Notwendigkeit des Tunings Ich habe mich immer ...

Detaillierte Erläuterung der Angular-Routing-Unterrouten

Inhaltsverzeichnis 1. Subroutensyntax 2. Beispiel...

Einige etwas komplexere Verwendungsbeispielcodes in MySQL

Vorwort Ich glaube, dass die Syntax von MySQL nic...

JavaScript zum Implementieren einer dynamischen Digitaluhr

In diesem Artikel finden Sie den spezifischen Cod...

Detailliertes Tutorial zur Installation von Docker auf CentOS 7.5

Einführung in Docker Docker ist eine Open-Source-...