Vue implementiert Beispielcode für benutzerdefinierte „modales Popup-Fenster“-Komponente

Vue implementiert Beispielcode für benutzerdefinierte „modales Popup-Fenster“-Komponente

Vorwort

Das Dialogfeld ist eine sehr häufige Komponente und wird an vielen Stellen verwendet. Normalerweise können wir die integrierte Warnung verwenden, um das Dialogfeld anzuzeigen. Was aber, wenn es sich um ein entworfenes Diagramm handelt? Wir müssen also selbst ein Dialogfeld schreiben. Schauen wir uns den detaillierten Implementierungsprozess an.

Rendern

Im obigen Screenshot zeigt der rote Rand an, dass der „Text, das Symbol oder das Bild“ der editierbare Teil ist.

Beispielcode

1. Erstellen Sie eine Popup-Komponente quitDialog.vue-Komponente

<Vorlage>
  <Übergangsgruppenname='verblassen'>
    <!-- Popup-Fenster verlassen-->
    <div Klasse="Dialog beenden"
         Schlüssel="1"
         @click="istBeenden = false"
         v-if="istBeenden"
         @touchmove.prevent>
    </div>
    <div Klasse="Beenden-Box"
         v-show="istBeenden"
         Schlüssel="2">
      <img :src="Bild-URL"
           :alt="imgLoadTip">
           <div class="quit_title">{{title}}</div>
      <p>{{Inhalt}}</p>
      <button class="quit_btn" @click="leftClick">{{btnText}}</button>
      <button class="quit_close" @click="rightClick">{{rightText}}</button>
    </div>
  </Übergangsgruppe>
</Vorlage>
<Skript>
Standard exportieren {
  Name: 'Popup',
  Daten () {
    zurückkehren {
      isQuit: falsch,
      imgUrl: '',
      Titel: '',
      Inhalt: '',
      btnText: '',
      rechterText: ''
    }
  },
  Methoden: {
    leftClick () {
      dies.leftBtn()
      this.isQuit = false
    },
    Rechtsklick () {
      dies.rightBtn()
      this.isQuit = false
    }
  }
}
</Skript>
<style lang="scss" scoped>
// Popup-Fenster verlassen.fade-enter,
.fade-leave-active {
  Deckkraft: 0;
}
.fade-enter-active,
.fade-leave-active {
  Übergang: Deckkraft 0,35 s;
}
// Globales Popup-Fenster.quit_dialog {
  Hintergrund: rgba(0,0,0,.5);
  Position: fest;
  oben: 0;
  links: 0;
  Höhe: 100%;
  Breite: 100 %;
  Z-Index: 10000;
}
 
.quit_box {
  Breite: 700px;
  Hintergrund: #fff;
  Position: fest;
  oben: 50 %;
  links: 50%;
  Rand links: -350px;
  Rand oben: -190px;
  Z-Index: 10001;
  Rahmenradius: 10px;
  Textausrichtung: zentriert;
  Polsterung: 50px;
  img{
    Breite: 80px;
  }
 .quit_title{
      Farbe: #666;
      Schriftgröße: 28px;
      Rand: 45px 0px;
  }
  Taste {
    Rahmenradius: 32px;
    Polsterung: 20px 0px;
    Schriftgröße: 26px;
    Rahmenradius: 8px;
    Breite: 214px;
  }
  .quit_btn{
    Farbe: #03BA82;
    Hintergrund: #fff;
    Rand: 1px durchgezogen #03BA82;
    Rand rechts: 32px;
  }
  .beenden_schließen {
    Hintergrund: linearer Farbverlauf (0 Grad, #03BA82, #01D695);
    Kastenschatten: 0px 3px 4px 0px rgba (1, 84, 58, 0,27);
    Rand: 1px durchgezogen #03BA82;
    Farbe: #fff;
  }
}
</Stil>

2. Erstellen Sie grabDialog.js

Vue von „vue“ importieren
Grasp importieren aus '../components/QuitDialog/QuitDialog'
 
const PopupBox = Vue.extend(Grasp).
 
Grasp.install = Funktion (Daten) {
  let Instanz = neue PopupBox({
    Daten
  }).$mount()
 
  Dokument.Body.AppendChild(Instanz.$el)
 
  Vue.nextTick(() => {
    Instanz.isQuit = true
    //isQuit entspricht isQuit in der Popup-Komponente und wird zur Steuerung der Sichtbarkeit verwendet})
}
 
Standard-Grasp exportieren

3. Importieren Sie in die globale main.js

Vue von „vue“ importieren
Popup aus „./api/quitDialog“ importieren
Vue.prototype.$popup = Popup.install

4. Um die Seite aufzurufen, rufen Sie einfach die Funktion auf

Methoden: {
    grabBtn () {
      dies.$grasp({
        imgUrl: require('../../assets/home/quits.png'), // Oberes Bild.
        imgLoadTip: „Bild wird geladen …“,
        Inhalt: 'Warme Tipps',
        Titel: 'Hinweis: Diese Lernaufgabe ist nicht abgeschlossen. Bestätigen Sie den Abschluss',
        btnText: 'Grausamer Abgang',
        rightText: 'Weiter studieren',
        // Linksklick-Ereignis leftBtn: () => {
          dies.$store.dispatch('user/logout').then(() => {
            dies.$signalr.LogoutPad()
            this.$signalr.SendMsg(2, 0, 'System verlassen')
            dies.$router.push('/login')
          })
        },
        // Rechtsklick-Ereignis rightBtn: () => {}
      })
    }
}

Zusammenfassen

Dies ist das Ende dieses Artikels über die Implementierung benutzerdefinierter „modaler Popup-Fenster“-Komponenten in Vue. Weitere relevante Inhalte zu benutzerdefinierten „modalen Popup-Fenster“-Komponenten in Vue finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Benutzerdefinierter globaler Popup-Komponentenbetrieb von Vue

<<:  CSS3-Zeitleistenanimation

>>:  Sieben Lösungen für klassische verteilte Transaktionen zwischen MySQL und Golan

Artikel empfehlen

Detaillierte Erläuterung der Nginx-Upstream-Konfiguration und -Funktion

Konfigurationsbeispiel Upstream-Backend { Server ...

CSS verwendet das Autoflow-Attribut, um einen Sitzauswahleffekt zu erzielen

1. Autoflow-Attribut: Wenn die Länge und Breite d...

So erstellen Sie eine virtuelle Maschine mit Vagrant+VirtualBox

1. Einleitung Vagrant ist ein Tool zum Erstellen ...

Implementierung der Docker-Bereitstellung von Django+Mysql+Redis+Gunicorn+Nginx

I. Einleitung Die Docker-Technologie erfreut sich...

Einige grundlegende Anweisungen für Docker

Inhaltsverzeichnis Einige grundlegende Anweisunge...

jQuery implementiert einen einfachen Kommentarbereich

In diesem Artikel wird der spezifische Code von j...

Sehr praktische Methode zur Implementierung des Tomcat-Startskripts

Vorwort Es gibt ein Szenario, in dem das Unterneh...

Prozess des Klassenlademechanismus von Tomcat und Quellcodeanalyse

Inhaltsverzeichnis Vorwort 1. Strukturdiagramm de...

CentOS7 verwendet RPM, um MySQL 5.7-Tutorialdiagramm zu installieren

1. Laden Sie 4 RPM-Pakete herunter mysql-communit...

CSS-Position feste linke und rechte Doppelpositionierungs-Implementierungscode

CSS-Position Das Positionsattribut gibt den Posit...

CSS HACK für IE6/IE7/IE8/IE9/FF (Zusammenfassung)

Seit ich die offizielle Version von IE8.0 install...

Einführung in vierzehn Fälle von SQL-Datenbank

Datenblatt /* Navicat SQLite-Datenübertragung Que...

Ubuntu16.04 Installation mysql5.7.22 Grafik-Tutorial

Installations-Tutorial für VMware12.0+Ubuntu16.04...

Architektur und Komponentenbeschreibung der privaten Docker-Bibliothek Harbor

In diesem Artikel wird die Zusammensetzung der Ha...