ÜberblickIm vorherigen Aufsatz „Schrittweise Entwicklung einer VUE+Element-Frontend-Anwendung: die zugehörige Verarbeitung dynamischer Menüs und Routen“ wurde vorgestellt, dass im Vue+Element-Integrationsframework die Verarbeitung dynamischer Menüs und dynamischer Routen implementiert wurde, sodass die Filterung und Bindung lokaler Routen entsprechend dem der Benutzerrolle entsprechenden Menü realisiert werden kann. Nachdem das Menü erfolgreich abgeschlossen wurde, muss die Seitenfunktion weiterentwickelt werden. Dieser Aufsatz stellt einen Fall vor, in dem die Produktinformationsseite nach dem Abrufen der Backend-Daten verarbeitet wird. 1. Erfassung und Verarbeitung von Backend-DatenDie Grenzen zwischen Front-End und Back-End sind sehr klar. Das Front-End kann die Front-End-Anwendung erstellen, indem es das entsprechende JSON über das Netzwerk abruft. Durch die Konfigurationsinformationen von Vue.config.js können wir angeben, ob der Proxy lokale Mock-Daten oder tatsächliche Backend-Daten verarbeitet, wie unten gezeigt. Wir müssen Daten über Domänen hinweg anfordern und einen Proxy in der Konfigurationsdatei einrichten. Für das vue-cli3-Projekt müssen wir die Konfiguration in vue.config.js schreiben. Wir haben einige API-Klassendateien für Betriebsdaten erstellt. Jeder API-Name entspricht der zentralisierten Verarbeitung eines Geschäfts, einschließlich Listenanforderungen, Einzelanforderungen, Hinzufügungen, Löschungen, Änderungen usw. eines bestimmten Geschäfts, die alle in einer API-Klasse gekapselt werden können. Definieren Sie dann unsere Anforderungslogik in der entsprechenden Business-API-Zugriffsklasse, z. B. product.js, und verwenden Sie dabei hauptsächlich die Anforderungshilfsklasse, die Axios einfach kapselt, um Datenanforderungen zu implementieren. Der nächste Schritt besteht darin, unsere Ansichtsdatei im Verzeichnis src/views/product zu definieren. Dabei handelt es sich um die Seitendatei, die mehrere Teile des regulären VUE enthält, darunter <Vorlage> </Vorlage> <Skript> Standard exportieren { } </Skript> <Stil> </Stil> Der Teil innerhalb von <template> ist der Schnittstellenelementteil, wo wir relevante Schnittstellenkomponenten und andere Inhalte hinzufügen können, wie etwa die Elementschnittstellenkomponente. Unter ihnen ist <script> der interaktive Teil des Vue-Skripts, der viele unserer Verarbeitungslogiken und entsprechenden modalen Objektinformationen kapselt. Bevor wir die API-Klasse aufrufen, um auf Daten zuzugreifen, müssen wir häufig die entsprechende API-Klassendatei einführen, wie unten gezeigt. importiere { GetTopBanners, GetProductList } von '@/api/product' Unter ihnen definiert <style> die relevanten Stile. Bevor wir den Skriptteil von Vue vorstellen, gehen wir davon aus, dass Sie den Skriptinhalt von VUE und seinen Lebenszyklus bereits verstanden haben. Der Inhalt des Skriptteils umfasst: <Skript> Standard exportieren { Daten() { zurückkehren {}; }, Methoden: { //Komponentenmethode}, betrachten: // watch eignet sich gut für Szenarien, in denen ein Datum mehrere Daten beeinflusst}, berechnet: { // computed ist gut im Umgang mit Szenarien, in denen ein Datum von mehreren Daten beeinflusst wird}, vorErstellen: function() { // Wird nach der Initialisierung der Instanz und vor der Datenbeobachter- und Ereignis-/Watcher-Konfiguration aufgerufen. }, erstellt: function() { // Wird aufgerufen, nachdem die Instanz erstellt wurde. In diesem Schritt hat die Instanz die folgenden Konfigurationen abgeschlossen: Datenbeobachter, Eigenschafts- und Methodenoperationen und Überwachungs-/Ereignisrückrufe. Allerdings hat die Mounting-Phase noch nicht begonnen und die Eigenschaft $el ist derzeit nicht sichtbar. }, vorMount: function() { // Wird aufgerufen, bevor das Mounten beginnt: Die relevante Renderfunktion wird zum ersten Mal aufgerufen. }, montiert: Funktion () { // Der Ereignis-Hook wird ausgeführt, nachdem das kompilierte HTML auf der Seite bereitgestellt wurde. // el wird durch das neu erstellte vm.$el ersetzt und der Hook wird aufgerufen, nachdem er auf der Instanz bereitgestellt wurde. // Diese Hook-Funktion macht normalerweise einige Ajax-Anfragen, um Daten für die Dateninitialisierung abzurufen console.log("Home done"); }, vorUpdate: function() { // Wird aufgerufen, wenn Daten aktualisiert werden, bevor der virtuelle DOM neu gerendert und gepatcht wird. Sie können den Status in diesem Hook weiter ändern, wodurch kein zusätzliches erneutes Rendering ausgelöst wird. }, aktualisiert: function() { // Dieser Hook wird aufgerufen, nachdem der virtuelle DOM aufgrund von Datenänderungen neu gerendert und gepatcht wurde. // Wenn dieser Hook aufgerufen wird, wurde das Komponenten-DOM bereits aktualisiert, sodass Sie jetzt Vorgänge ausführen können, die vom DOM abhängen. In den meisten Fällen sollten Sie jedoch eine Statusänderung während dieser Zeit vermeiden, da dies zu einer Endlosschleife bei der Aktualisierung führen kann. // Dieser Hook wird während des serverseitigen Renderings nicht aufgerufen. }, vorZerstören: Funktion() { // Wird aufgerufen, bevor die Instanz zerstört wird. In diesem Schritt ist die Instanz noch vollständig nutzbar. }, zerstört: Funktion() { // Wird aufgerufen, nachdem die Vue-Instanz zerstört wurde. Nach dem Aufruf wird die Bindung von allem, worauf die Vue-Instanz zeigt, aufgehoben, alle Ereignis-Listener werden entfernt und alle untergeordneten Instanzen werden zerstört. Dieser Hook wird während des serverseitigen Renderings nicht aufgerufen. } }; </Skript> Zu den wichtigsten Inhalten, die wir behandeln, gehören: Daten, die verwendet werden, um das modale Objekt oder die Attribute der gesamten Seite zu definieren, Methode, die zum Definieren verschiedener Verarbeitungsmethoden verwendet wird berechnet, wird verwendet, um einige berechnete Bäume zu definieren erstellt, wird verwendet, wenn wir ein Element erstellen, aber nicht gemountet gemountet, wenn die Seite gemountet ist 2. Verarbeitung der SchnittstellenanzeigeWenn wir beispielsweise einen Schnittstelleninhalt anzeigen möchten, müssen wir Produktbilder und eine Einführung zu Produktinformationen anzeigen Anschließend müssen Sie die entsprechenden Datenvorlagen und die entsprechenden Verarbeitungsmethoden definieren, um die Datenbindungsverarbeitung vor dem Laden der Seite zu implementieren. Standard exportieren { Daten() { zurückkehren { aktiverName: "alle", aktuellesDatum: neues Datum(), Banner: [], Produktliste: [], Seiteninfo: { Seitenindex: 1, Seitengröße: 10, gesamt: 0 }, Produkttyp: „alle“ }; }, erstellt() { dies.loadbanners() dies.getlist() }, Im Schnittstellenteil verwenden wir die Schnittstellenkomponenten von Element, um einen rotierenden Laternenanzeigeeffekt zu definieren, wie unten gezeigt. Die im Vorlagenmodul definierten Schnittstellenelemente werden unten angezeigt. Das el-carousel ist hier das Karussell der Elementkomponente, und v-for="iteminbanners" ist die Verarbeitungssyntax von Vue, die die Daten im Datenmodell in einer Schleife verarbeitet und dann mehrere Bilder nacheinander anzeigt, wodurch der Effekt eines Karussells erzielt wird. Für die Listenanzeige verwenden wir eine Karte zum Anzeigen des Inhalts und eine Paging-Methode zum Anzeigen der Daten. Für den Kategorie-Schaltflächenteil lautet der Code wie folgt. <el-row :gutter="20" style="padding:20px"> <el-button type="primary" icon="el-icon-search" :plain="producttype !='all'" @click="handleClick($event, 'all')">Alle</el-button> <el-button type="success" icon="el-icon-search" :plain="producttype !='1'" @click="handleClick($event, '1')">Framework-Produkte</el-button> <el-button type="warning" icon="el-icon-search" :plain="producttype !='2'" @click="handleClick($event, '2')">Softwareprodukte</el-button> <el-button type="danger" icon="el-icon-search" :plain="producttype !='3'" @click="handleClick($event, '3')">Entwicklungskomponente</el-button> </el-row> Die Hauptsache besteht darin, einige Stile entsprechend den Datenattributen zu steuern und auf die entsprechenden Klickereignisse zu reagieren. Der Inhalt jeder Karte wird vorgestellt und der Democode wird unten angezeigt. <el-col: span="4"><div Klasse="Gitterinhalt bg-purple" /> <el-card Klasse="Box-Karte"> <img src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png" class="image"> <div Stil="Padding: 14px;"> <span>Leckere Burger</span> <div Klasse="bottom clearfix"> <time class="time">Preis: ¥200</time> <el-button type="text" class="button" @click="loadbanners()">Aktionsschaltfläche</el-button> </div> </div> </el-Karte> </el-col> Wir müssen jedoch eine Bindung entsprechend den tatsächlich erhaltenen dynamischen Daten durchführen, sodass zur Anzeige der Produktliste eine Schleife zur Verarbeitung erforderlich ist, ähnlich der obigen v-for-Schleife. <el-col v-for="(Artikel, Index) in Produktliste" :key="index" :span="4" style="min-width:250px"> <div Klasse="Rasterinhalt bg-lila"> <el-card Klasse="Box-Karte"> <img :src="item.Picture" Klasse="Bild" Stil="Breite:200px;Höhe:200px"> <div Stil="Padding: 14px;"> <span>{{ Artikel.Produktname }}</span> <div Klasse="bottom clearfix"> <!-- <time class="time">Preis: ¥{{ item.Preis }}</time> --> <el-button type="text" class="button">Bedienungstaste</el-button> </div> </div> </el-Karte> </div> </el-col> Um Daten effektiv anzufordern und anzuzeigen, müssen wir auch die Paging-Komponente verwenden, um eine Paging-Abfrageverarbeitung für die Daten durchzuführen. Der Definitionscode der Paging-Komponentenschnittstelle lautet wie folgt. <el-pagination Hintergrund Layout = "Zurück, Pager, Weiter" :Seitengrößen="[10,20,50]" :total="Seiteninfo.total" :current-page="Seiteninfo.Seitenindex" :Seitengröße="Seiteninfo.Seitengröße" @size-change="Größenänderungsgriff" @current-change="AktuelleÄnderung handhaben" /> Um die Datenpaginierung zu implementieren, müssen wir mehrere Variablen definieren, wie etwa die aktuelle Seitenzahl, die Datengröße pro Seite, die Gesamtzahl der Datensätze usw., um den Anforderungen der Paging-Abfrage gerecht zu werden. Die von uns definierte getList-Methode ist wie folgt. Liste abrufen () { //Paging-Abfragebedingungen erstellen var param = { Typ: dieser.Produkttyp === 'alle' ? '' : dieser.Produkttyp, Seitenindex: diese.Seiteninfo.Seitenindex, Seitengröße: this.pageinfo.pagesize }; this.listLoading = wahr // Eine Datenabfrage starten und den Wert der lokalen Daten festlegen GetProductList(param).then(data => { diese.produktliste = daten.liste this.pageinfo.total = Daten.Gesamtzahl this.listLoading = falsch }) }, Darüber hinaus sind verschiedene Methoden zur Abfrage der Daten definiert. // Beim Klicken auf eine Kategorie, Abfrage handleClick(e, Typ) { // console.log(e, Typ); this.producttype = Typ diese.pageinfo.pageindex = 1; dies.getlist() }, // Abfrageverarbeitung nach Änderung der Seitenanzahl handleSizeChange(val) { console.log(`${val} Elemente pro Seite`); this.pageinfo.pagesize = Wert; dies.getlist() }, // Abfrageverarbeitung nach Seitenzahländerung handleCurrentChange(val) { console.log(`Aktuelle Seite: ${val}`); this.pageinfo.pageindex = Wert; dies.getlist() } Oben ist die grundlegende Vorgehensweise bei der Verwendung von Element-Schnittstellenkomponenten und Vue-Methoden zum Ausführen von Paging-Abfrageanforderungen für Daten beschrieben. Anhand dieses einfachen Beispiels können wir die Verwendung einiger grundlegender Element-Schnittstellenkomponenten sowie das Verständnis von Daten/Methoden und anderen Inhalten verstehen und lernen, wie man domänenübergreifende API-Anfragen kapselt und aufruft, um die Anzeige und Verarbeitung von Back-End-Daten auf der Schnittstelle zu realisieren. Oben finden Sie ausführliche Informationen zur Entwicklung von Front-End-Anwendungen für Vue Element zum Abrufen von Back-End-Daten. Weitere Informationen zum Abrufen von Back-End-Daten durch Vue Element finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: So installieren Sie die Linux-Onlinesoftware gcc online
>>: So finden Sie die my.ini-Konfigurationsdatei in MySQL 5.6 unter Windows
Führen Sie die Anweisung „create table“ in der Da...
Inhaltsverzeichnis Überblick Was sind Generika Sy...
In diesem Artikel wird der spezifische Code von V...
Vorwort Ich habe kürzlich etwas über MySQL-Indize...
Vorwort Wie wir alle wissen, ist Bash (die Bourne...
Vereinfacht ausgedrückt geht es beim Erstellen ein...
Einführung in Swap Swap (d. h. Swap-Partition) in...
Diese Frage ist sehr seltsam, deshalb gehe ich di...
MySQL 5.7.18 Installation und Problemübersicht. I...
In diesem Artikelbeispiel wird der spezifische Co...
Die MERGE-Speicher-Engine behandelt eine Gruppe v...
Trennung von statischer und dynamischer Dynamisch...
Dieser Artikel verwendet das Centos7.6-System und...
Installation von Python 3 1. Abhängige Umgebung i...
1. MySQL-Software installieren Laden Sie das offi...