Vue implementiert ein Beispiel zum Herunterziehen und Scrollen zum Laden von Daten

Vue implementiert ein Beispiel zum Herunterziehen und Scrollen zum Laden von Daten

Webprojekte verwenden häufig die Funktion des Herunterziehens und Scrollens, um Daten zu laden. Heute werde ich das Vue-Infinite-Loading-Plugin vorstellen und erklären, wie man es verwendet!

Schritt 1: Installation

npm installiere vue-infinite-loading --save

Schritt 2: Zitieren

importiere InfiniteLoading von „vue-infinite-loading“;

Standard exportieren {
  Komponenten: { Unendliches Laden }
}

Schritt 3: Verwenden

1. Grundlegende Verwendung

<Vorlage>
  <div> <p v-for="item in list"> <span v-text="item"></span> </p> <!--Die Komponente zum unendlichen Laden sollte am Ende der Liste, innerhalb des Bildlauffelds, platziert werden! --> <infinite-loading @infinite="infiniteHandler"></infinite-loading> </div></template><script> importiere InfiniteLoading von 'vue-infinite-loading';

  Standard exportieren {
    Daten() {
      zurückkehren {
        Liste: []
      };
    },
    Methoden: {
      infiniteHandler($zustand) {
        // Hier wird eine Ladeverzögerung von 1 Sekunde simuliert setTimeout(() => {
          lass temp = [];
          für (lass i = diese.Liste.Länge + 1; i <= diese.Liste.Länge + 20; i++) {
            temp.push(i);
          }
          diese.Liste = diese.Liste.concat(temp);
          $zustand.geladen();
        }, 1000);
      },
    },
    Komponenten: { Unendliches Laden }
  }</script>

2. Paging-Nutzung

<Vorlage>
    <div>
          <ul>
              <li class="hacker-news-item" v-for="(item, key) in list"></li>
        </ul>
        <unendlich-laden @infinite="infiniteHandler">
            Keine weiteren Daten
        </unendlich-laden>
    </div>
</Vorlage>    

<Skript>
    importiere InfiniteLoading von „vue-infinite-loading“;
    importiere Axios von „Axios“;

    Standard exportieren {
          Daten() {
            zurückkehren {
                  Liste: []
            };
          },
          Methoden: {
            infiniteHandler($zustand) {
                let api="http://xxx.com/xxx";
                //API fordert die Datenadresse für Sie an axios.get(api, {
                    Parameter: {
                        // Seitenzahlenparameter (10 pro Seite)
                          Seite: this.list.length / 10 + 1,
                    },
                  }).dann((Antwort) => {
                    wenn (Antwort.Daten.Länge) {
                        // response.data ist die Array-Liste, die von Ihrer Anforderungsschnittstelle zurückgegeben wird: this.list = this.list.concat(response.data);
                          $zustand.geladen();
                          wenn (diese.Liste.Länge / 10 === 10) {
                              // Hier werden 10 Seiten mit Daten geladen und die Einstellung ist, dass keine weiteren geladen werden $state.complete(); 
                          }
                    } anders {
                          $zustand.abgeschlossen();
                    }
                  });
            }
          },
          Komponenten: { Unendliches Laden }
    };
</Skript>

Beschreibung: $state: Diese Komponente übergibt einen speziellen Ereignisparameter $state an den Ereignishandler, um den Ladestatus zu ändern. Der Parameter $state umfasst drei Methoden, nämlich die geladene Methode, die vollständige Methode und die Reset-Methode.

  • Mit der Methode „Loaded“ wird die Animation nach jedem Datenladen gestoppt. Anschließend ist die Komponente für den nächsten Auslöser bereit.
  • Mit der Methode „complete“ wird das unendliche Laden abgeschlossen und die Komponente verarbeitet keine Bildlaufvorgänge mehr. Wenn die Methode beim Laden nie aufgerufen wird, ruft sie die vollständige Methode auf. Diese Komponente zeigt dem Benutzer die Ergebnisnachricht an. Wenn nicht, werden keine Benutzernachrichten mehr angezeigt. Andere Inhalte können über den Slot festgelegt werden.
  • Die Reset-Methode bringt die Komponente in ihren ursprünglichen Zustand zurück

3. Bedingte Nutzung

<Vorlage>
    <div Klasse="Hacker-News-Liste">
          <div Klasse="Hacker-News-Header">
            <!--Zum Ändern nach unten ziehen-->
            <select v-model="tag" @change="changeFilter()">
                  <option value="story">Geschichte</option>
                  <option value="history">Verlauf</option>
            </Auswählen>
              <!--Oder klicken zum Ändern-->
            <button @click="changeFilter()">Suchen</button>
          </div>
          <ul>
              <li class="hacker-news-item" v-for="(item, key) in list"></li>
           </ul>
           <!--Vergessen Sie nicht, dies festzulegen: ref="infiniteLoading"-->
          <unendlich-laden @infinite="infiniteHandler" ref="infiniteLoading">
            Keine Daten mehr
          </unendlich-laden>
    </div>
</Vorlage>

<Skript>
    importiere InfiniteLoading von „vue-infinite-loading“;
    importiere Axios von „Axios“;

    Standard exportieren {
          Daten() {
            zurückkehren {
                  Liste: [],
                  Schlagwort: 'Geschichte',
            };
          },
          Methoden: {
            infiniteHandler($zustand) {
                  const api="http://xxx.com/xxx";
                  //API fordert die Datenadresse für Sie an axios.get(api, {   
                    Parameter: {
                        // Geänderte bedingte Parameter-Tags: this.tag,  
                          Seite: this.list.length / 10 + 1,
                    },
                  }).dann(({ Daten }) => {
                    if (Daten.Ergebnis.Länge) {
                          diese.Liste = diese.Liste.concat(Daten.Ergebnis);
                          $zustand.geladen();
                          wenn (diese.Liste.Länge / 20 === 10) {
                            Zustand.abgeschlossen();
                          }
                    } anders {
                          $zustand.abgeschlossen();
                    }
                  });
            },
            //Ändern Sie die bedingte Leiste mit dieser Methode changeFilter() {
                  diese.liste = [];
                  dies.$nextTick(() => {
                    dies.$refs.infiniteLoading.$emit('$InfiniteLoading:reset');
                  });
            },
          },
          Komponenten: { Unendliches Laden }
    }
</Skript>

Offizieller Link: https://peachscript.github.io/vue-infinite-loading/

GitHub-Link: https://github.com/PeachScript/vue-infinite-loading

Oben sind die Einzelheiten des Beispiels für das Laden von Daten durch das Dropdown-Scrollen von Vue aufgeführt. Weitere Informationen zum Laden von Daten durch das Dropdown-Scrollen von Vue finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Vue merkt sich die Bildlaufleiste und die perfekte Möglichkeit zum Implementieren von Dropdown-Ladevorgängen
  • Vue implementiert eine alphabetische Sortierung der Sängerliste, eine Dropdown-Bildlaufleiste und eine Echtzeitaktualisierung der Seitenleistensortierung
  • Vue überwacht die Methode zum Ziehen einer vertikalen Div-Bildlaufleiste nach unten
  • Vue verwendet Mint-UI, um Beispielcode für Pulldown-Aktualisierung und unendliches Scrollen zu implementieren
  • Vue implementiert Ajax-Scrollen und Pulldown-Laden und verfügt auch über einen Ladeeffekt (empfohlen).
  • Pulldown-Aktualisierungsanweisungen und Scroll-Aktualisierungsanweisungen basierend auf Vue
  • Vue Mobile: Zum Aktualisieren nach unten ziehen und zum Laden nach oben schieben
  • Vue implementiert einen Netzwerkbild-Wasserfallfluss + nach unten ziehen zum Aktualisieren + nach oben ziehen zum Laden weiterer Elemente (detaillierte Schritte)
  • Das Laden von Pulldowns in Vue ist eigentlich nicht so kompliziert
  • VueScroll implementiert Pulldown-Aktualisierung und Pullup-Laden auf Mobilgeräten
  • Das Vue-Plugin mescroll.js implementiert das Pull-Up-Laden und die Pull-Down-Aktualisierung auf Mobilgeräten
  • So kapseln Sie eine Komponente zum Herunterziehen, um die nächste Datenseite auf einem mobilen Vue-Terminal zu laden

<<:  Beispiele für die Verwendung der oder-Anweisung in MySQL

>>:  Grafisches Tutorial zur Installation und Aktivierung von VMware Workstation 14 Pro

Artikel empfehlen

So isolieren Sie Benutzer in Docker-Containern

Im vorherigen Artikel „UID und GID in Docker-Cont...

Empfehlen Sie einen coolen blinkenden Alarmknopf

Die Wirkung ist wie folgt: Der Code lautet wie fo...

MySQL verwendet Aggregatfunktionen zum Abfragen einer einzelnen Tabelle

Aggregatfunktionen Wirkt auf einen Datensatz ein ...

Zusammenfassung der wichtigsten Attribute des Body-Tags

bgcolor="Textfarbe" background="Hin...

Detaillierte Erklärung zum Einrichten eines DNS-Servers unter Linux

1. DNS-Server-Konzept Die Kommunikation im Intern...

202 kostenlose, hochwertige XHTML-Vorlagen (2)

Nach dem vorherigen Artikel 202 kostenlose hochwe...

Implementierung der Validierungsregel für Vue Element-ui-Formulare

Inhaltsverzeichnis 1. Einleitung 2. Eingabemodus ...

Detailliertes Tutorial zur Integration von Apache Tomcat mit dem IDEA-Editor

1. Laden Sie das komprimierte Tomcat-Paket von de...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.19 (Win10)

Detailliertes Tutorial zum Herunterladen und Inst...

Wo werden MySQL-Daten gespeichert?

Speicherort der MySQL-Datenbank: 1. Wenn MySQL di...

Installation und Konfiguration von MySQL 8.0.15 unter Centos7

In diesem Artikel finden Sie das grafische Tutori...