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 stellen Sie Tomcat stapelweise mit Ansible bereit

1.1 Aufbau der Verzeichnisstruktur Dieser Vorgang...

Die Kombination und der Unterschied zwischen ENTRYPOINT und CMD im Dockerfile

Im vorherigen Artikel [Detaillierte Erläuterung v...

Beginnen Sie CSS-Pseudoklassennamen nicht mit Zahlen

Wenn Neulinge Div+CSS entwickeln, müssen sie die ...

So erstellen Webdesigner Bilder für Retina-Displays

Besonderer Hinweis: Dieser Artikel wurde basieren...

Detaillierte Erläuterung der Anwendungsszenarien von Filtern in Vue

filter werden im Allgemeinen verwendet, um bestim...

Detailliertes Installationstutorial für MySQL 5.7.11 unter Win7

Betriebssystem: Win7 64-Bit Ultimate Edition Komp...

JavaScript imitiert Xiaomi-Karusselleffekt

Dieser Artikel ist eine selbstgeschriebene Nachah...