Detaillierte Erläuterung der Vue3-Kapselungsfunktion für Nachrichtenaufforderungsinstanzen

Detaillierte Erläuterung der Vue3-Kapselungsfunktion für Nachrichtenaufforderungsinstanzen

Vue3-Kapselungsnachrichten-Eingabeaufforderungsinstanzfunktion

  • Vue2.0 verwendet Vue.prototype.$message = function () {}
  • vue3.0 verwendet app.config.globalProperties, um die Prototypmethode app.config.globalProperties.$message = Message zu mounten.
  • Es unterstützt auch den direkten Import von Funktionen mit import Message from './Message.js

Stillayout-Kapselung message.vue

<Vorlage>
  <Übergangsname="nach unten">
    <div class="meine-Nachricht" :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: 'meineNachricht',
  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;
    }
  }
}
.meine-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>

Funktionsimplementierung message.js

//Symbol//Textimport { createVNode,render } von 'vue'
importiere meineNachricht aus „./message.vue“
//DOM-Container dynamisch erstellen const div = document.createElement('div')
div.setAttribute('Klasse','mein-Nachrichtencontainer')
Dokument.Body.AnhängenKind(div)
exportiere Standard ({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(myMessage,{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, es verschwindet nach 1s clearTimeout(timer)
   Timer = setzeTimeout(()=>{
     // Lösche den Inhalt von div render(null,div)
   },1000)
}
// $message({ text: 'Anmeldung fehlgeschlagen', type: 'error'})

Registrieren benutzerdefinierter Anweisungen

Nachricht aus „./Message.js“ importieren
Standard exportieren {
  installieren(App){
  // Wenn Sie globale Eigenschaften bereitstellen möchten, können Sie die Eigenschaft this.$message über die Komponenteninstanz aufrufen.
     // Erweitern Sie eine Instanzmethode app.config.globalProperties.$message = Message // Prototypfunktion }
}

verwenden:

Methode 1

Nachricht aus „./message.js“ importieren
aufstellen(){
  Nachricht ({Text: „Anmeldung fehlgeschlagen“, Typ: „Fehler“})
}

Methode 2

// Greifen Sie auf das Komponenteninstanzobjekt in der Setup-Funktion zu. Importieren Sie { getCurrentInstance } von „vue“.
   aufstellen(){
     const Instanz = getCurrentInstance()
     instance.proxy.$message({ text: 'Anmeldung fehlgeschlagen', type: 'error' })
   } 

Methode 3 this.$message

this.$message({ text: 'Anmeldung fehlgeschlagen', type: 'error' })

Zusammenfassen

Dieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalten auf 123WORDPRESS.COM mehr Aufmerksamkeit schenken können!

Das könnte Sie auch interessieren:
  • Vue3 manuelle Kapselung Popup-Box-Komponente Nachrichtenmethode
  • Vue3 implementiert ein Beispiel für eine Nachrichtenkomponente
  • Schreiben Sie eine globale Nachrichtenkomponente basierend auf Vue
  • Kapselung und Verwendung von el-message in vue

<<:  Gründe für den plötzlichen Leistungsabfall bei MySQL

>>:  Implementierung der Docker-Bereitstellung eines MySQL-Clusters

Artikel empfehlen

jQuery implementiert Akkordeoneffekte

Dieser Artikel gibt Ihnen den spezifischen Code v...

Zusammenfassung einiger effizienter magischer Operatoren in JS

JavaScript veröffentlicht mittlerweile jedes Jahr...

So installieren Sie Element UI und verwenden Vektorgrafiken in vue3.0

Hier konzentrieren wir uns nur auf die Installati...

Schritte zum Upgrade des Ubuntu 16.04-Kernels

1. Umwelt Ubuntu 16.04 läuft auf einer virtuellen...

So implementieren Sie den Nginx-Reverse-Proxy für mehrere Server

Nginx verwendet mehrere Reverse-Proxy-Server, was...

Lösung für den MySQL-Fehlercode 1064

Wenn die Wörter in der SQL-Anweisung mit den Schl...

So implementieren Sie Hot Deployment und Hot Start in Eclipse/Tomcat

1. Hot Deployment: Das bedeutet, das gesamte Proj...

Vue implementiert das Ziehen und Sortieren von Bildern

In diesem Artikelbeispiel wird der spezifische Co...

So verwenden Sie Docker zum Bereitstellen eines Django-Technologie-Stack-Projekts

Mit der Popularität und Reife von Docker ist es a...

40 Webseiten-Designs mit supergroßen Schriftarten

Heutige Webdesigns neigen dazu, sehr große Schrif...

Analyse des Parameterübertragungsprozesses des Treibermoduls in Linux

Deklarieren Sie den Parameternamen, den Typ und d...