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

Zusammenfassung der Implementierungsmethoden und Punkte der H5-Wakeup-APP

Inhaltsverzeichnis Vorwort Zur APP-Methode spring...

CentOS 8 offiziell veröffentlicht, basierend auf Red Hat Enterprise Linux 8

Das CentOS-Projekt, ein 100 % kompatibler Neuaufb...

Detaillierte Erklärung zum MySQL-Index

Inhaltsverzeichnis 1. Index-Grundlagen 1.1 Einlei...

JavaScript implementiert eine Box, die der Mausbewegung folgt

In diesem Artikel wird der spezifische JavaScript...

Reagieren Sie auf die Verarbeitung von Fehlergrenzkomponenten

Dies ist der Inhalt von React 16. Es ist nicht di...

Eine kurze Diskussion über den Spaß von :focus-within in CSS

Ich glaube, einige Leute haben dieses Bild gesehe...

Docker Swarm von der Bereitstellung bis zum grundlegenden Betrieb

Über Docker Swarm Docker Swarm besteht aus zwei T...

Einfaches Beispiel für HTML-Textformatierung (ausführliche Erklärung)

1. Textformatierung: Dieses Beispiel zeigt, wie T...

Vier Methoden zur Datentypbeurteilung in JS

Inhaltsverzeichnis 1. Art von 2. Instanz von 3. K...

Vollständige Analyse des Vue-Diff-Algorithmus

Inhaltsverzeichnis Vorwort Vue-Aktualisierungsans...