Vue3 manuelle Kapselung Popup-Box-Komponente Nachrichtenmethode

Vue3 manuelle Kapselung Popup-Box-Komponente Nachrichtenmethode

In diesem Artikel wird der spezifische Code der manuellen Kapselung von Popup-Box-Komponentennachrichten in Vue3 zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

Paketkomponenten

<Vorlage>
  <Übergangsname="nach unten">
    <div Klasse="xtx-message" :style="Stil[Typ]" v-show='isShow'>
      <!-- Der Stil ist oben gebunden -->
      <!-- Verschiedene Eingabeaufforderungssymbole ändern sich-->
      <i Klasse = "Iconfont": Klasse = "[Stil[Typ].Icon]"></i>
      <span class="text">{{text}}</span>
    </div>
  </Übergang>
</Vorlage>
<Skript>
importiere { onMounted, ref } von 'vue'

Standard exportieren {
  Name: "XtxMessage",
  Requisiten: {
    text: {
      Typ: Zeichenfolge,
      Standard: ''
    },
    Typ: {
      Typ: Zeichenfolge,
      // warnen Warnung Fehler Fehler Erfolg Erfolg Standard: „warnen“
    }
  },
  aufstellen () {
    // Definieren Sie ein Objekt, das drei Stile enthält. Der Objektschlüssel ist vom Typ String const style = {
      warnen:
        Symbol: „Symbol-Warnung“,
        Farbe: '#E6A23C',
        Hintergrundfarbe: 'rgb(253, 246, 236)',
        Rahmenfarbe: 'rgb(250, 236, 216)'
      },
      Fehler: {
        Symbol: „Symbol-Shanchu“,
        Farbe: '#F56C6C',
        Hintergrundfarbe: 'rgb(254, 240, 240)',
        Rahmenfarbe: 'rgb(253, 226, 226)'
      },
      Erfolg: {
        Symbol: 'icon-queren2',
        Farbe: '#67C23A',
        Hintergrundfarbe: 'rgb(240, 249, 235)',
        Rahmenfarbe: 'rgb(225, 243, 216)'
      }
    }
    // Animation steuern const isShow = ref(false)
    // Auslösen bei Mounted(() => {
      isShow.value = true
    })
    return { Stil, istAnzeigen }
  }
}
</Skript>
<style scoped lang="weniger">
.runter {
  &-eingeben {
    &-aus {
      transformieren: übersetzen3d(0, -75px, 0);
      Deckkraft: 0;
    }
    &-aktiv {
      Übergang: alle 0,5 s;
    }
    &-Zu {
      transformieren: keine;
      Deckkraft: 1;
    }
  }
}
.xtx-Nachricht {
  Breite: 300px;
  Höhe: 50px;
  Position: fest;
  Z-Index: 9999;
  links: 50%;
  Rand links: -150px;
  oben: 25px;
  Zeilenhöhe: 50px;
  Polsterung: 0 25px;
  Rand: 1px durchgezogen #e4e4e4;
  Hintergrund: #f5f5f5;
  Farbe: #999;
  Rahmenradius: 4px;
  ich {
    Rand rechts: 4px;
    vertikale Ausrichtung: Mitte;
  }
  .text {
    vertikale Ausrichtung: Mitte;
  }
}
</Stil>

Auf dem Prototypobjekt von Vue montiert

// Die folgende Methode muss einen Eingabeaufforderungseffekt rendern: import { createVNode, render } from 'vue'
XtxMessage aus „./xtx-message.vue“ importieren

//DOM-Container dynamisch erstellen const div = document.createElement('div')
div.setAttribute('Klasse', 'xtx-Nachrichtencontainer')
Dokument.Body.AnhängenKind(div)

export default ({ Text, Typ }) => {
  let timer = null
  // createVNode wird verwendet, um einen virtuellen Knoten zu erstellen // Parameter 1 unterstützt die Komponente // Parameter 2 stellt die an die Komponente übergebenen Optionen dar const vnode = createVNode(XtxMessage, { text, type })
  // Rendere den virtuellen Knoten in das DOM der Seite // Parameter der Renderfunktion // Parameter 1: gibt den zu rendernden Inhalt an (virtueller Knoten)
  // Parameter 2: gibt den Zielort des Renderings an (DOM-Element)
  rendern(vnode, div)

  // Hoffe, dass die Eingabeaufforderung nach 1 Sekunde verschwindet clearTimeout(timer)
  Timer = setzeTimeout(() => {
    // Lösche den Inhalt von div render(null, div)
  }, 1000)
}

// $message({ text: 'Anmeldung fehlgeschlagen', type: 'error'})
Nachricht aus './Message' importieren
Standard exportieren {
  installieren(App) {
    // Wenn Sie globale Eigenschaften bereitstellen möchten, können Sie die Eigenschaft this.$message über die Komponenteninstanz aufrufen.
    app.config.globalProperties.$message = Nachricht // Prototypfunktion}
}

verwenden

eins.

Nachricht aus '@/components/library/Message' importieren
aufstellen () {
    // Anmeldung auslösen const handleLogin = async () => {
      // Manuelle Formularvalidierung const flag = await target.value.validate()
      wenn (Flagge) {
        // Überprüfung erfolgreich, rufe die Schnittstelle zum Anmelden auf // Wenn die Anmeldung fehlschlägt, melde dich mit der Meldung „Message({ type: 'error', text: 'Login failed' })“ an.
      }
    }
    montiert () {
      this.$message({ Typ: 'Fehler', Text: 'Anmeldung fehlgeschlagen' })
    }
}

zwei.

// Holen Sie sich das Instanzobjekt der Komponente: ähnlich wie beim vorherigen this
    const Instanz = getCurrentInstance()
     // Klicken Sie hier, um sich anzumelden const handleLogin = async () => {
      const valid = warte auf Ziel.Wert.Validieren()
      if (gültig) {
        // Formularüberprüfung erfolgreich abgeschlossen. Rufen Sie die Schnittstelle zum Anmelden auf. // Message({ text: 'Anmeldung fehlgeschlagen', type: 'error' })
        instance.proxy.$message({ text: 'Anmeldung fehlgeschlagen', type: 'error' })
      }
    }

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:
  • Detaillierte Erläuterung der Vue3-Kapselungsfunktion für Nachrichtenaufforderungsinstanzen
  • Vue3 implementiert ein Beispiel für eine Nachrichtenkomponente
  • Schreiben Sie eine globale Nachrichtenkomponente basierend auf Vue
  • Kapselung und Verwendung von el-message in vue

<<:  SQL implementiert Additions-, Subtraktions-, Multiplikations- und Divisionsoperationen auf zwei benachbarten Datenzeilen

>>:  Der Excel-Export schlägt in der Docker-Umgebung immer fehl

Artikel empfehlen

HTML-Code einer Webseite: Erzeugung von Lauftext

In diesem Abschnitt beschreibt der Autor die spez...

So deinstallieren Sie Node und NPM vollständig auf dem Mac

npm deinstallieren sudo npm deinstallieren npm -g...

JavaScript-Verlaufsobjekt erklärt

Inhaltsverzeichnis 1. Routennavigation 2. API zur...

Verwenden Sie die mail()-Funktion von PHP zum Senden von E-Mails

Senden von E-Mails mit der Mail-Funktion von PHP ...

Implementierung eines Bootstrap-Webseiten-Layoutrasters

Inhaltsverzeichnis 1. So funktioniert das Bootstr...

Detaillierte Schritte zur Installation von Mysql5.7.19 mit yum auf Centos7

In der Yum-Quelle von Centos7 ist standardmäßig k...

Fallstudie zu JavaScript-Funktionsaufrufen, Apply- und Bind-Methoden

Zusammenfassen 1. Ähnlichkeiten Beide können den ...

Beispielanalyse des Prinzips der MySQL-Transaktionsisolationsebene

Einführung Dies ist Ihnen sicherlich schon einmal...

Detaillierte Erklärung des Explain-Typs in MySQL

Einführung: In vielen Fällen denken viele Leute, ...