Kapseln Sie die Navigationsleistenkomponente mit Vue

Kapseln Sie die Navigationsleistenkomponente mit Vue

Vorwort: Die vollständige Kapselung eines Funktionsmoduls mithilfe komponentenbasierter Ideen, wie z. B. einer Navigationsleiste, bietet viele Vorteile sowohl für unsere Entwicklungsideen als auch für die Effizienz. Bei der Entwicklung sollten wir versuchen, so weit wie möglich komponentenbasierte Entwicklungsideen zu verwenden und nicht den gesamten Code in dieselbe VUE-Datei zu schreiben, was die Lesbarkeit des Codes erheblich verbessern kann.

Kapselung der Navigationsleiste

Die Hauptidee besteht darin, die roten Teile als Komponenten zu behandeln, die sich nur in Bild und Text unterscheiden. Daher können wir sie in dieselbe Komponente kapseln und dann die Bild- und Textinformationen an die Komponente übergeben (Slots können verwendet werden).

//TabBarItem.vue
<Vorlage>
  <div Klasse="tabBarItem" @click="tabBarItemClick">
    <div v-if="!istAktiv">
      <slot name="item-icon"></slot>
    </div>
    <div v-sonst>
      <slot name="item-icon-active"></slot>
    </div>
    <div :style="istAktiveFarbe">
      <slot name="item-text"></slot>
    </div>
  </div>
</Vorlage>

<Skript>
Standard exportieren {
  Name:"TabBarItem",
  Requisiten:{
    Pfad:String,
    aktiveFarbe:{
      Typ: Zeichenfolge,
      Standard: „rosa“
    }
  },
  berechnet:{
    istAktiv:{
      erhalten(){
        gib dies zurück.$route.path.indexOf(this.path)!==-1;
      },
      Satz(){}
    },
    istActiveColor(){
      gib dies zurück.istAktiv?{color:this.activeColor}:{}
    }
  },
  Methoden:{
    tabBarItemClick(){
      dies.$router.push(dieser.pfad);
    }
  }
}
</Skript>

<Stilbereich>
.tabBarItem{
  biegen: 1;
  Schriftgröße: 12px;
}
.tabBarItem img{
  Rand oben: 3px;
  Breite: 24px;
  Polsterung unten: 3px;
}
</Stil>

Der nächste Schritt besteht darin, einen Container zu kapseln, der diese vier Optionen an derselben Stelle platziert.

//TabBar.vue
<Vorlage>
  <div Klasse="tabBar">
    <Steckplatz></Steckplatz>
  </div>
</Vorlage>

<Skript>
Standard exportieren {
  Name: „TabBar“
}
</Skript>

<Stilbereich>
.tabBar{
  Anzeige: Flex;
  Höhe: 49px;
  Position: fest;
  links: 0;
  rechts: 0;
  unten: 0;
  Textausrichtung: zentriert;
  Kastenschatten: 0px -1px 1px rgba(100, 100, 100, .1);
  Hintergrundfarbe: #f6f6f6;
}

</Stil>

Der nächste Schritt besteht darin, es zu verwenden und unterschiedliche Bilder und Textinformationen in jeden unterschiedlichen TabBarItem-Slot zu schreiben.

//MainTabBar.vue
<Vorlage>
  <div Klasse="Haupt-TabBar">
    <Tabulatorleiste>
      <tab-bar-item Pfad="/home" activeColor="#ff8198">
        <img src="~assets/img/tabbar/home.svg" alt="" slot="item-icon">
        <img src="~assets/img/tabbar/home_active.svg" alt="" slot="item-icon-active">
        <div slot="item-text">Startseite</div>
      </tab-bar-item>
      <tab-bar-item path="/Kategorie" activeColor="#ff8198">
        <img src="~assets/img/tabbar/category.svg" alt="" slot="item-icon">
        <img src="~assets/img/tabbar/category_active.svg" alt="" slot="item-icon-active">
        <div slot="item-text">Kategorie</div>
      </tab-bar-item>
      <tab-bar-item path="/cart" activeColor="#ff8198">
        <img src="~assets/img/tabbar/shopcart.svg" alt="" slot="item-icon">
        <img src="~assets/img/tabbar/shopcart_active.svg" alt="" slot="item-icon-active">
        <div slot="item-text">Warenkorb</div>
      </tab-bar-item>
      <tab-bar-item path="/profil" activeColor="#ff8198">
        <img src="~assets/img/tabbar/profile.svg" alt="" slot="item-icon">
        <img src="~assets/img/tabbar/profile_active.svg" alt="" slot="item-icon-active">
        <div slot="item-text">Mein</div>
      </tab-bar-item>
    </tab-bar>
  </div>
</Vorlage>

<Skript>
TabBar aus „Komponenten/Allgemein/Tabbar/TabBar“ importieren
importiere TabBarItem aus „Komponenten/Inhalt/Tabbar/TabBarItem“
Standard exportieren {
  Name:"Haupt-Tableiste",
  Komponenten: {
    TabBar,
    TabBarItem
  }
}

</Skript>
<Stil>

</Stil>

Die Navigationsleiste wird im Allgemeinen auf der Startseite verwendet, daher haben wir diese Navigationsleiste in App.vue eingefügt.

<Vorlage>
  <div id="app">
    <Haupt-Tab-Leiste></Haupt-Tab-Leiste>
  </div>
</Vorlage>

<Skript>
importiere MainTabBar aus „Komponenten/Inhalt/Tabbar/MainTabBar“;
Standard exportieren {
  Name: "App",
  Komponenten: {
    Haupt-Tab-Leiste
  }
}

Zusammenfassung: Es scheint, dass wir 3 Dateien verwenden, um eine Navigationsleiste zu schreiben, was zwar mühsam erscheinen mag, aber auch die Lesbarkeit des Codes erheblich verbessert. Wenn wir die Navigationsleiste noch an anderer Stelle im Projekt verwenden müssen, müssen wir nur eine Datei ähnlich wie MainTabBar erstellen und dann die gewünschten Bilder und Texte hineinschreiben. Auch wenn sie in anderen Projekten verwendet wird, können wir die Datei direkt kopieren und direkt verwenden. Wir müssen nicht einmal CSS-Stile schreiben, was unsere Entwicklungseffizienz erheblich verbessert.

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:
  • Erfahren Sie, wie Sie in fünf Minuten mit vue-cli3 ein Projekt erstellen (Anleitung für Anfänger)
  • Einige Tipps zur Verwendung von Less in Vue-Projekten
  • So wenden Sie TypeScript-Klassen in Vue-Projekten an
  • Vue.js implementiert Erläuterungen zum Tab-Umschalten und Farbwechseln
  • Detaillierte Erläuterung des Vuex-Gesamtfalls
  • Klicken Sie in Vue auf den Umschaltknopf, um die Schaltfläche zu aktivieren und dann zu deaktivieren.
  • Fallzusammenfassung zur Vue-Komponentenkommunikationsmethode
  • Detaillierte Erklärung zur Verwendung von Scoped Slots in Vue.js-Slots
  • Einige Vorschläge zur Lesbarkeit des Vue-Codes

<<:  Detaillierte Erläuterung der Docker-Container-Cross-Host-Multi-Netzwerksegment-Kommunikationslösung

>>:  Strategie zur Optimierung der Leistung von MySQL-Datenbankabfragen

Artikel empfehlen

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.20

Tutorial zum Herunterladen und Installieren von M...

Einführung in die Anwendung der HTML-Tags superscript sup und subscript sub

HTML-Tag: hochgestellt In HTML definiert das <s...

Einführung in general_log-Protokollwissenspunkte in MySQL

Die folgenden Funktionsdemonstrationen basieren a...

Beispiel zum Anzeigen und Ändern der MySQL-Transaktionsisolationsebene

Überprüfen Sie die Transaktionsisolationsebene In...

Einige Parameterbeschreibungen von Texteingabefeldern im Webdesign

In Gästebüchern, Foren und anderen Orten werden i...

Vue verwendet Element-UI, um die Menünavigation zu implementieren

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

So überwachen Sie mehrere JVM-Prozesse in Zabbix

1. Szenariobeschreibung: Unsere Umgebung verwende...

HTML-Hyperlink ein Tag_Powernode Java Academy

Jeder, der HTML studiert oder verwendet hat, soll...

Grundlegende Implementierung der AOP-Programmierung in JavaScript

Einführung in AOP Die Hauptfunktion von AOP (Aspe...

Koexistenz von Python2 und Python3 unter einem CentOS7-System

Der erste Schritt besteht darin, die Versionsnumm...

Zusammenfassung der Fallstricke bei Virtualbox Centos7 NAT+Host-Only-Netzwerken

Inhaltsverzeichnis 1. Problemhintergrund 2. Welch...

VMware Workstation-Installation (Linux-Kernel) Kylin-Grafik-Tutorial

In diesem Artikel erfahren Sie, wie Sie Kylin auf...