So importieren, registrieren und verwenden Sie Komponenten in Stapeln in Vue

So importieren, registrieren und verwenden Sie Komponenten in Stapeln in Vue

Vorwort

Komponenten sind etwas, das wir sehr häufig verwenden. Viele Leute verwenden Komponenten, indem sie sie Datei für Datei referenzieren und registrieren. In diesem Artikel wird erläutert, wie Sie Komponenten in Vue stapelweise einführen, registrieren und verwenden.

1. Anwendungsszenarien

In der täglichen Entwicklung kommt es häufig zu einer solchen Situation:

	importiere A von 'Komponenten/A'
	importiere B von 'Komponenten/B'
	C aus „Komponenten/C“ importieren
	importiere D aus 'Komponenten/D'

Als ich auf diese Art von sich wiederholendem Code stieß, fragte ich mich, ob ich die folgenden Optimierungen vornehmen und sie alle auf einmal importieren könnte. Also habe ich die Webpack-API gefunden und sie durch Aufrufen von require.context verarbeitet. Der spezifische Code lautet wie folgt:

2. Nutzungsschritte

Beteiligt:

  • Der Komponentenname ist eine mit Bindestrich versehene Funktion, die in CamelCase konvertiert wird.
  • Dies ist die Eigenschaft der Komponente.

Die genaue Erklärung steht im Code:

1. Dateiverzeichnis

2. HTML-Code

<Vorlage>
  <div Klasse="Wasseranalyse">
    <div Klasse="Inhaltsbox" ref="Inhaltsbox">
      <a-tabs :default-active-key="aktiveKomponente" @change="tabChangeHandle">
        <a-Registerkartenbereich
          v-for="Element in TabList"
          :Schlüssel="Artikel.Schlüssel"
          :tab="Element.tab"
        ></a-tab-pane>
      </a-tabs>
      <div Klasse="Tab-Bereich-Box">
      	<!-- Binden Sie über das is-Attribut den entsprechenden Komponentennamen und zeigen Sie die entsprechende Komponente an-->
        <Komponente: ist = "aktiveKomponente"></Komponente>
      </div>
    </div>
  </div>
</Vorlage>

3.js-Code

Syntax: require.context(directory, useSubdirectories, regExp)

  • Verzeichnis: der zu durchsuchende Dateipfad
  • useSubdirectories: ob Unterverzeichnisse durchsucht werden sollen
  • regExp: Der reguläre Ausdruck, der mit der Datei übereinstimmt

Rückgabewert: zwei Methoden und eine Eigenschaft

  • keys(): Gibt ein Array mit Namen erfolgreich zugeordneter Module zurück
  • resolve(): akzeptiert eine Parameteranforderung, nämlich den relativen Pfad der passenden Datei im Testordner, und gibt den relativen Pfad der passenden Datei relativ zum gesamten Projekt zurück
  • id: die ID der Ausführungsumgebung, die als Zeichenfolge zurückgegeben wird. Sie wird hauptsächlich in module.hot.accept verwendet, das Hot Loading sein sollte.
<Skript>
//Konvertiere die mittlere horizontale Linie in camelCase var camelCase = function (s) {
  return s.replace(/-\w/g, Funktion (x) {
    return x.slice(1).toUpperCase();
  });
};
// Unterkomponenten stapelweise importieren, siehe Syntax oben const allComponents = require.context("./comp", false, /\.vue$/);

Konsole.log(alleKomponenten.keys())
// ["./tem-a.vue", "./tem-b.vue", "./tem-c.vue", "./tem-d.vue"]

console.log(alleKomponenten.id)
//./src/views/tempManage/comp synchronisieren \.vue$

// Erstellen Sie ein Komponenten-Array und registrieren Sie es in den folgenden Komponenten let resComponents = {};
allComponents.keys().fürEach(comName => {
  let name = camelCase(comName);
  const comp = alle Komponenten (comName);
  resComponents[name.replace(/^\.\/(.*)\.\w+$/, "$1")] = comp.default;
});

Standard exportieren {
  Name: "WaterQuery",
  Komponenten: resComponents,
  Daten() {
    zurückkehren {
      aktiveKomponente: "temA",
      RegisterkarteListe: [
        {
          Schlüssel: "temA",
          Registerkarte: „Komponente A“,
        },
        {
          Schlüssel: "temB",
          Registerkarte: "B-Komponente",
        },
        {
          Schlüssel: "temC",
          Registerkarte: „C-Komponenten“,
        },
        {
          Schlüssel: "temD",
          Registerkarte: „D-Komponenten“,
        },
      ],
    };
  },
  erstellt() {
    wenn (diese.$route.query["val"]) {
      diese.activeComponent = diese.$route.query["val"];
    }
  },
  Methoden: {
    // Tab-Leiste wechseln tabChangeHandle(val) {
      const {Pfad} = dies.$router;

      dies.$router.push({
        Weg,
        Abfrage: {val},
      });
      this.activeComponent = Wert;
    },
  },
};
</Skript>

4. CSS-Code (Sie müssen ihn nicht lesen, er dient nur der Vollständigkeit des Codes und kann direkt ausgeführt und angezeigt werden)

<Stilbereich>
.Wasseranalyse {
  Höhe: 100%;
  Überlauf: automatisch;
}
.Inhaltsbox {
  Höhe: 100%;
}
.tab-pane-box {
  Höhe: berechnet (100 % – 62 Pixel);
}
</Stil>

Abschluss

Dies ist das Ende dieses Artikels zum Stapelimport, zur Registrierung und zur Verwendung von Vue-Komponenten. Weitere relevante Inhalte zum Stapelimport von Vue-Komponenten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Vue-Methode zum Einführen von Unterkomponenten
  • Detaillierte Erklärung zur Einführung von ElementUI-Komponenten in Vue-Projekte
  • Vues Methode, alle öffentlichen Komponenten auf einmal kurz und klar einzuführen
  • Detaillierte Erklärung zum Erstellen eines neuen Vue-Projekts und zur Einführung der Komponente Element
  • Lösen Sie das Problem, dass Vue Unterkomponentenfehler einführt
  • So importieren Sie Vue-Komponenten automatisch bei Bedarf

<<:  So erstellen Sie eine Ansicht für mehrere Tabellen in MySQL

>>:  Lösen Sie das Problem „Willkommen bei nginx auf Fedora!“. Nach der Installation von nginx auf Centos7 befindet sich im Verzeichnis conf.d keine Datei default.conf.

Artikel empfehlen

Tutorial zur Installation von Ceph Distributed Storage mit Yum unter Centos7

Inhaltsverzeichnis Vorwort Konfigurieren Sie die ...

So lassen sich Python-Skripte direkt unter Ubuntu ausführen

Nehmen wir als Beispiel das Übersetzungsprogramm....

Einführung in den B-Tree-Einfügeprozess

Im vorherigen Artikel https://www.jb51.net/articl...

Lernen Sie einfach verschiedene SQL-Joins

Mit der SQL JOIN-Klausel können Zeilen aus zwei o...

HTML verwendet Canvas, um die Bullet-Screen-Funktion zu implementieren

Einführung Kürzlich musste ich für einen großen A...

Tutorial zur binären Kompilierung und Installation von MySql centos7 unter Linux

// Ich habe einen ganzen Nachmittag für die Insta...

Einführung in die Verwendung des MySQL pt-slave-restart-Tools

Inhaltsverzeichnis Beim Einrichten einer MySQL-Ma...

Lösen Sie das Problem, dass die mit nginx erhaltene IP-Adresse 127.0.0.1 ist

Holen Sie sich das IP-Tool importiere lombok.exte...

Beispiel zur Identifizierung des Benutzers mithilfe eines Linux-Bash-Skripts

In Bash-Skripten oder direkt im Skript selbst ist...

Vue implementiert die Abfrage von Startzeit und Endzeitbereich

In diesem Artikel erfahren Sie, wie Sie den Start...

Zusammenfassung der vier Möglichkeiten zur Einführung von CSS (Sharing)

1. Inline-Referenz: Wird direkt auf dem Etikett v...

30 hervorragende Beispiele für Farbabstimmung im Webdesign

Heute habe ich in diesem Artikel 30 hervorragende ...