Vue implementiert rekursiv ein dreistufiges Menü

Vue implementiert rekursiv ein dreistufiges Menü

In diesem Artikelbeispiel wird der spezifische Code der rekursiven Implementierung des dreistufigen Menüs durch Vue zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

Übergeordnete Komponente

<Vorlage>
    <div Klasse="Menüebene-Menü Menüebene-Menü-Eingabe" v-if="showLevelMenu">
      <Menüelement Klasse="Menüelement" :menuDate="Menüliste"></Menüelement>
    </div>
</Vorlage>

Unterkomponenten

<Vorlage>
  <div>
    <div Klasse="" v-for="(Menü, Index) in MenüDatum" :Schlüssel="Index">
    // Jedes Menüelement <div class="menu-row" @click="menuSpread(menu)"
           :Klasse="[{'menu-row-selected': menu.selected && menu.children.length <= 0}]">
        <div Klasse="Menüzeile links">
          <div Klasse = "Menüzeile-links-Linie" :Klasse = "[{'Menü-ausgewählt': Menü.ausgewählt && Menü.Kinder.Länge <= 0}]"></div>
          <i class="iconfont" :class="[menu.menuIcon, {'color-icon': showIconColor(menu)}]"></i>
        </div>
        <div Klasse="Menüzeile rechts">
          <span :class="[{'font-16': menu.level === '0'}]">{{menu.menuName}}</span>
          <i class="c" v-if="menu.children.length <= 0"></i>
          <i class="iconfont icon-liebiaoxiala" v-if="menu.children.length>0 && !menu.selected"></i>
          <i class="iconfont icon-liebiaoshouqi" v-if="menu.children.length>0 && menu.selected"></i>
        </div>
      </div>
      // Menü rekursiv anzeigen <menu-item v-show="menu.selected" v-if="menu.children.length>0" :menuDate="menu.children"></menu-item>
    </div>
  </div>
</Vorlage>
<Skript>
  Standard exportieren {
    Requisiten: {
      MenüDatum: Array
    },
    Name: 'Menüelement',
    Methoden: {
      menuSpread (Menü) {
        wenn (menu.menuRouter) dies.$router.push(menu.menuRouter);
        Menü.ausgewählt = !Menü.ausgewählt;
        dies.rekursion(dieses.menuDate, menü);
      },
      Rekursion (alle, temp) {
        alle.fürJedes(Element => {
          wenn (item.menüname !== temp.menüname) {
            Element.ausgewählt = falsch;
            dies.rekursion(item.children, temp);
          }
        });
      },
      showIconColor (Menü) {
        lass zeigen = falsch;
        wenn (Menüebene === '0') {
          menu.children.forEach(item => {
            wenn (Artikel.Kinder.Länge <= 0 && Artikel.ausgewählt) {
              zeigen = wahr;
            }
            wenn (Element.Kinder.Länge > 0) {
              item.children.forEach(item => {
                wenn (Element.ausgewählt) {
                  zeigen = wahr;
                }
              });
            }
          });
        }
        Rückgabeshow;
      }
    }
  };
</Skript>

Rendern

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:
  • Vue + Element verwendet dynamisches Laderouting, um den Vorgang zum Anzeigen der dreistufigen Menüseite zu implementieren
  • Vue.js realisiert den dreistufigen Menüeffekt
  • Vue implementiert das Berechtigungssystem zur Hintergrundverwaltung und die dreistufige Menüanzeigefunktion der oberen Leiste
  • So ändern Sie das sekundäre Menü des Vue iview-admin-Frameworks in das Menü der dritten Ebene
  • Die Verknüpfungsmethode zwischen Menü und Registerkarte von vue+iview
  • Vue implementiert den Implementierungscode für die linke und rechte Menüverknüpfung
  • Vue realisiert eine dreistufige Verknüpfung der Städteauswahl basierend auf Mint-UI
  • Detaillierte Erläuterung von Vue, Element-UI und Axios zur Erreichung einer dreistufigen Verknüpfung zwischen Provinzen, Städten und Bezirken
  • Beispiel, wie vue + elementUI eine dreistufige Verknüpfung zwischen Provinzen, Städten und Landkreisen erreichen kann
  • Vue implementiert ein dynamisches Menü mit dreistufiger Verknüpfung

<<:  Docker stellt Laravel-Anwendung bereit, um Warteschlangen- und Aufgabenplanung zu realisieren

>>:  Grafisches Tutorial zur Installation des MySQL 5.7.21 Installers unter Windows 10

Artikel empfehlen

Tutorial zum Erstellen des File-Sharing-Dienstes Samba unter CentOS6.5

Samba-Dienste: Dieser Inhalt dient als Referenz f...

Einführung in die Installationsmethode in Vue

Inhaltsverzeichnis 1. Weltweit registrierte Kompo...

Beispielcode zum automatischen Umbrechen des Pre-Tags

Das Pre-Element definiert vorformatierten Text. In...

Kompatibilitätsprobleme mit CSS3-Farbverlaufshintergründen

Wenn wir eine Hintergrundfarbe mit Farbverlauf er...

Implementierung von webpack-dev-server zum Erstellen eines lokalen Servers

Inhaltsverzeichnis Vorwort Webpack-Deb-Server Sta...

Detaillierte Erklärung gängiger Befehle im Docker-Repository

Einloggen Docker-Anmeldung Schließen Sie die Regi...

Lösung zum Hinzufügen einer iptables-Firewall-Richtlinie zum MySQL-Dienst

Wenn Ihre MySQL-Datenbank auf einem CentOS7-Syste...

So installieren Sie Grafana und fügen Influxdb-Überwachung unter Linux hinzu

Installieren Sie Grafana. Die offizielle Website ...

So verwenden Sie Docker zum Bereitstellen eines Dubbo-Projekts

1. Verwenden Sie zunächst Springboot, um ein einf...

Detaillierte Erklärung der Sperrstruktur in MySQL

Mysql unterstützt 3 Arten von Sperrstrukturen Spe...

Einführung in die grafischen Kompositions- und Satzfunktionen des Webdesigns

Alles braucht ein Fundament. Um ein Haus zu bauen...

Diskussion über die Möglichkeit zum Öffnen von Website-Hyperlinks

Ein neues Fenster wird geöffnet. Vorteile: Wenn d...

Wie verfolgt Vue Datenänderungen?

Inhaltsverzeichnis Hintergrund Beispiel Missverst...