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

Beispiele für die MySQL-Verschlüsselung und -Entschlüsselung

Beispiele für die MySQL-Verschlüsselung und -Ents...

Elemente der Benutzererfahrung oder Elemente des Webdesigns

System- und Benutzerumgebungsdesign <br />D...

Eine kurze Diskussion über Browserkompatibilitätsprobleme in JavaScript

Die Browserkompatibilität ist der wichtigste Teil...

Dynamische SQL-Anweisungsanalyse in Mybatis

Dieser Artikel stellt hauptsächlich die dynamisch...

Implementierung eines Docker-Cross-Host-Netzwerks (manuell)

1. Einführung in Macvlan Vor dem Aufkommen von Ma...

MySQL 5.7.18 Installations-Tutorial unter Windows

In diesem Artikel wird erklärt, wie Sie MySQL aus...

jQuery-Plugin zur Implementierung des Minesweeper-Spiels (3)

In diesem Artikel wird der dritte Artikel zur Ver...

Erläuterung der MySQL-Indexoptimierung

Bei unserer täglichen Arbeit führen wir manchmal ...

Eine kurze Diskussion über vier Lösungen für Vue Single Page SEO

Inhaltsverzeichnis 1.Bereitstellung der serversei...