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

202 kostenlose, hochwertige XHTML-Vorlagen (2)

Nach dem vorherigen Artikel 202 kostenlose hochwe...

Detaillierte Erklärung zum Erstellen geplanter MySql-Aufgaben in Navicat

Detaillierte Erklärung zum Erstellen geplanter My...

Gängige Angriffe auf Web-Frontends und Möglichkeiten, sie zu verhindern

Die Sicherheitsprobleme, die bei der Frontend-Ent...

Zusammenfassung der zwölf Methoden der Vue-Wertübertragung

Inhaltsverzeichnis 1. Vom Vater zum Sohn 2. Vom S...

Trash-Cli: Befehlszeilen-Papierkorb-Tool unter Linux

Ich glaube, jeder kennt den Papierkorb, da er bei...

Detaillierte Analyse des MySQL-Datentyps DECIMAL

Vorwort: Wenn wir Dezimalzahlen speichern müssen ...

Detaillierte Erklärung des Linx awk-Einführungstutorials

Awk ist eine Anwendung zur Verarbeitung von Textd...

Detaillierte Erklärung, wie Komponenten in React kommunizieren

1. Was ist Wir können die Kommunikation zwischen ...

Vue-CLI - Aufzeichnung der Schritte zur mehrseitigen Verzeichnisverpackung

Seitenverzeichnisstruktur Beachten Sie, dass Sie ...

Lösung für das Textüberlaufproblem auf CSS-Flex-Basis

Die unbedeutende flex-basis hat bei der kleinen F...

JavaScript-Implementierung des Verifizierungscode-Falls

In diesem Artikel wird der spezifische Code für J...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.11 Zip

1. Laden Sie das MySQL 5.7.11 Zip-Installationspa...

Detaillierte Erklärung des Unterschieds zwischen Vue-Lebenszyklus

Lebenszyklusklassifizierung Jede Komponente von V...