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

So implementieren Sie verschiebbare Komponenten in Vue

In diesem Artikel erfahren Sie, wie Sie ziehbare ...

Anweisungen zum Erlernen von Vue

Inhaltsverzeichnis 1. v-Text (v-Befehlsname = „Va...

Detaillierte Beschreibung des Lebenszyklus von React-Komponenten

Inhaltsverzeichnis 1. Was ist der Lebenszyklus 2....

Lösung für 1067, wenn Mysql in Windows startet

Ich habe erst vor ein paar Tagen mit der Arbeit b...

Tutorial zur Installation und Verwendung des Elasticsearch-Tools cerebro

Cerebro ist eine Weiterentwicklung des Elasticsea...

Docker-Reinigungskiller/Docker-Overlay-Datei nimmt zu viel Speicherplatz ein

[Wenn ich mir all die Migrationsdateien im Intern...

Lösung für das Routing-Hervorhebungsproblem von Vue-Komponenten

Vorwort Früher habe ich den Cache verwendet, um d...

Docker startet im Status „Beendet“

Nach dem Docker-Lauf ist der Status immer „Beende...

MySQL-Installationstutorial unter Centos7

Tutorial zur MySQL-Installation. Zu Ihrer Informa...