Detaillierte Erläuterung der Komponentenentwicklung des Vue-Dropdown-Menüs

Detaillierte Erläuterung der Komponentenentwicklung des Vue-Dropdown-Menüs

In diesem Artikelbeispiel wird der spezifische Code für die Komponentenentwicklung des Vue-Dropdown-Menüs zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

Machen Sie eine benutzerdefinierte Komponente, nur ein sehr einfaches Dropdown-Menü, das heißt eine Idee, das Ganze

Schritt 1: Erstellen Sie im Projekt einen Ordner zum Speichern benutzerdefinierter Komponenten (direkt gemeinsam unter Komponenten).

dropdown.vue ist eine Box der ersten Ebene

dropdownMenu.vue ist eine sekundäre Box

dropdownItem.vue ist der sekundäre Boxinhalt

Schritt 2:

Operationen auf dropdown.vue

<Vorlage>
  <div Klasse="Box">
     <!-- Der Schaltfläche ein Klickereignis hinzufügen-->
    <div @click="showM">
          <!-- Schaltfläche der ersten Ebene -->
      <slot name="Titel"></slot>
    </div>
        <!-- Sekundäre Box -->
        
        <!-- Fügen Sie eine v-if-Operation hinzu, um den Anzeigeeffekt auszublenden-->
    <slot v-if="anzeigen" name="dropdown"></slot>
  </div>
</Vorlage>

<Skript>
  Standard exportieren {
    Name: "Dropdown",
    Daten() {
      zurückkehren {
        // Die sekundäre Standardbox ist geschlossen. Show: false
      }
    },
    Methoden: {
      zeigeM() {
        dies.show = !dies.show
      },
      commitClick(Wert) {
      // Das Dropdown-Ereignis dem übergeordneten Element zugänglich machen und den Wert an this.$emit('change-item',value) übergeben.
      }
    }
  }
</Skript>

<Stilbereich>
  .Kasten {
    Anzeige: Inline-Block; /* Inline-Block */
    position: relativ; /* relative Positionierung*/
    oben: 100px;
    Rand links: 100px
  }
</Stil>

Behandeln Sie das Dropdown-Menü einfach wie eine Box. Sie müssen nur einen Slot hinzufügen und die Box erstellen.

<Vorlage>
  <div Klasse="Dropdown-Menü">
    <Steckplatz></Steckplatz>
  </div>
</Vorlage>

<Skript>
  Standard exportieren {
    Name: "Dropdown-Menü"
  }
</Skript>

<Stilbereich>
  .Dropdown-Menü {
    padding: 8px 0; /* Der innere Rand der Box beträgt oben 8px und links und rechts 0 */
    border-radius: 4px; /* abgerundete Ecken der Box*/
    Rahmen: 1px durchgezogen #f2f6fc; /* Rahmen ist 1px grau*/
    position: absolute; /* absolute Positionierung*/
    rechts: 0; /* auf der rechten Seite */
    oben: 110 %; /* Die Box befindet sich unter der Schaltfläche */
    Hintergrundfarbe: #fff; /* Hintergrundfarbe ist weiß*/
    Kastenschatten: 0 2px 4px rgba(0,0,0,0,12),0 0 6px rgba(0,0,0,04);
    /* Füge der Box einen Schatten hinzu */
  }
</Stil>

Operationen an Dropdown-Elementen

<Vorlage>
  <div Klasse="Dropdown-Element" @click="itemClick(Wert)">
    <Steckplatz></Steckplatz>
  </div>
</Vorlage>

<Skript>
Standard exportieren {
  Name: "DropdownItem",
  Requisiten: ['Wert'],
  Daten() {
    zurückkehren {};
  },
  Methoden: {
    itemClick(Wert) {
      // console.log(Wert)
      //Rufen Sie das übergeordnete Element des übergeordneten Elements der aktuellen Komponente auf, d. h. die Methode showM() des Dropdown-Menüs, um dies zu schließen.$parent.$parent.showM();
      // Rufen Sie die CommitClick-Methode des übergeordneten Elements (Dropdown) des übergeordneten Elements auf und übergeben Sie den Wert this.$parent.$parent.commitClick(value);
    },
  },
};
</Skript>

<Stilbereich>
 .Dropdown-Element {
   Zeilenhöhe: 40px; /* Zeilenhöhe 40px */
   white-space: nowrap; /* kein Zeilenumbruch*/
   padding: 0 20px; /* Der innere Rand beträgt oben und unten 0 und links und rechts 20px */
   Farbe: #606266; /* Schriftfarbe ist grau*/
   Cursor: Zeiger; /*Bewegen Sie die Maus zum Klicken*/
 }
  .dropdown-item:hover {
    Farbe: #409eff; /* Schriftfarbe ist blau*/
    Hintergrundfarbe: #ecf5ff; /* Die Hintergrundfarbe sollte hell sein~~ ein sehr helles Blau*/
  }
</Stil>

Als nächstes bearbeiten Sie die Datei App.vue

<Vorlage>
  <div id="app">
    <dropdown @change-item="changeItem">
      <button slot="title">Schaltfläche</button>
      <Dropdown-Menü-Slot="Dropdown">
        <dropdown-item value="Essen">Essen</dropdown-item>
        <dropdown-item value="Getränk">Getränk</dropdown-item>
        <dropdown-item value="Abspielen">Abspielen</dropdown-item>
      </Dropdown-Menü>
    </dropdown>
  </div>
</Vorlage>

<Skript>
  Dropdown importieren aus „./components/common/dropdown“
  Dropdown-Menü aus "./components/common/dropdownMenu" importieren;
  Dropdown-Element aus "./components/common/dropdownItem" importieren;
  Standard exportieren {
    Name: "App",
    Komponenten:
      Dropdown, Dropdown-Menü, Dropdown-Element
    },
    Methoden:{
      ändereElement(e){
        console.log(e)
      }

    }
  }
</Skript>

Importieren Sie die Komponente in main.js

importiere zgDropdown aus "@/components/common/dropdown"
importiere zgDropdownMenu aus "@/components/common/dropdownMenu"
importiere zgDropdownItem aus "@/components/common/dropdownItem"
Vue.component('zgDropdownItem',zgDropdownItem)
Vue.Komponente('zgDropdown',zgDropdown)
Vue.component('zgDropdownMenu',zgDropdownMenu)

app.vue sollte ebenfalls entsprechend geändert werden

<Vorlage>
  <div id="app">
    <zg-dropdown @change-item="changeItem">
      <button slot="title">Schaltfläche</button>
      <zg-dropdown-menu slot="Dropdown">
        <zg-dropdown-item value="Essen">Essen</zg-dropdown-item>
        <zg-dropdown-item value="Getränk">Getränk</zg-dropdown-item>
        <zg-dropdown-item value="Abspielen">Abspielen</zg-dropdown-item>
      </zg-Dropdown-Menü>
    </zg-dropdown>
  </div>
</Vorlage>

<Skript>
  Standard exportieren {
    Name: "App",
    Methoden:{
      ändereElement(e){
        console.log(e)
      }

    }
  }
</Skript>
<Stilbereich>

</Stil>

Das ist in etwa die Idee.

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:
  • Kennen Sie die Komponentenbildung im Vue-Lebenszyklus?
  • Detaillierte Erläuterung des Lernumfangs von Vue-Komponenten
  • Grundlegende Fähigkeiten für die Entwicklung von Vue-Komponenten: Komponentenrekursion
  • Grundlegende Nutzungsdetails zur Vue-Komponentenbildung
  • Gängige Methoden der Vue-Komponentenbildung: Übertragung und Kommunikation von Komponentenwerten
  • Lassen Sie uns gemeinsam die Komponentenbildung von Vue lernen

<<:  MySQL-Anmelde- und Beendigungsbefehlsformat

>>:  So überwachen Sie MySQL mit Zabbix

Artikel empfehlen

Detaillierte Erklärung der JS-Homologiestrategie und CSRF

Inhaltsverzeichnis Überblick Same-Origin-Policy (...

Tutorial zu HTML-Tabellen-Tags (27): Zell-Hintergrundbild-Attribut BACKGROUND

Wir können ein Hintergrundbild für die Zelle fest...

Beispielcode zur Implementierung eines Laufschriftformats mit CSS3

Hintergrund Folgendes ist passiert: Luzhu erfuhr ...

So stellen Sie das Crownblog-Projekt mit Docker in der Alibaba Cloud bereit

Front-End-Projektpaketierung Suchen Sie .env.prod...

Beispiel einer datenbankübergreifenden Abfrage in MySQL

Vorwort In MySQL werden datenbankübergreifende Ab...

Optimierung der Web-Frontend-Leistung

Best Practices für die Web-Frontend-Optimierung: ...

Mehrere Implementierungsmethoden der Tab-Leiste (empfohlen)

Registerkarten: Kategorie + Beschreibung Tag-Leis...

MySQL max_allowed_packet-Einstellung

max_allowed_packet ist ein Parameter in MySQL, de...

Zwei Bilder von JavaScript zum Verständnis der Prototypenkette

Inhaltsverzeichnis 1. Prototyp-Beziehung 2. Proto...

Unterschiede zwischen MySQL MyISAM und InnoDB

Der Unterschied: 1. InnoDB unterstützt Transaktio...

Native js realisiert das Ziehen und Ablegen des Neun-Quadrat-Rasters

Verwenden Sie natives JS, um ein neuneckiges Rast...