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

Analyse der allgemeinen Konfigurationsmethoden für virtuelle Hosts von Apache

1. Installation und Konfiguration des Apache-Serv...

Detaillierte Erklärung des Docker Compose-Orchestrierungstools

Docker Compose Docker Compose ist ein Tool zum De...

Detaillierte Erklärung zur Verwendung von HTML-Einbettungs-Tags und -Attributen

1. Grundlegende Grammatik Code kopieren Der Code ...

Anwendungshandbuch für chinesische WEB-Schriftarten

Die Verwendung von Schriftarten im Web ist sowohl ...

Node.js implementiert die Wiederaufnahme von Haltepunkten

Inhaltsverzeichnis Lösungsanalyse Scheibe Lebensl...

Detaillierte Erläuterung der grundlegenden Datentypen in mysql8.0.19

MySQL-Basisdatentypen Übersicht über gängige MySQ...

So stellen Sie LNMP und phpMyAdmin in Docker bereit

Umweltvorbereitung: Stellen Sie lnmp auf einem Ho...