Vue implementiert Pulldown, um mehr zu laden

Vue implementiert Pulldown, um mehr zu laden

Entwickler, die mit Element-UI vertraut sind, haben diese Erfahrung möglicherweise schon gemacht: Das unendliche Scrollen InfiniteScroll ist nicht einfach zu verwenden. Hier sind zwei Möglichkeiten, das Laden nach unten zu implementieren:

1. Verwenden Sie das Plugin „el-table-infinite-scroll“

(1). Installieren Sie das Plugin

npm install --save el-table-infinite-scroll

(2). Weltweite Einfuhr und Registrierung

// Haupt.js
 
importiere elTableInfiniteScroll aus „el-table-infinite-scroll“;
 
Vue.use(elTableInfiniteScroll);

(3) Lokaler Dateiimport

<Skript>
// Importieren Sie „elTableInfiniteScroll“ von „el-table-infinite-scroll“;
Standard exportieren {
  // Anweisungen registrieren: {
    'el-table-infinite-scroll': elTableInfiniteScroll
  }
}
</Skript>

(4). Gebrauchsanweisung

<el-table :height="Tabellenhöhe" v-el-table-infinite-scroll="Mehr laden">
 
</el-Tabelle>

(5). Codebeispiele

<Vorlage>
    <div Klasse="App-Container">
        <el-table :height="Tabellenhöhe" v-el-table-infinite-scroll="Weitere laden" :data="Tabellenliste">
            <!-- Tabellendaten ausgelassen-->
        </el-Tabelle>
    </div>
</Vorlage>
 
<Skript>
// Importieren Sie das Plugin „import elTableInfiniteScroll from "el-table-infinite-scroll";
 
Standard exportieren {
    Name: "Index",
    Daten() {
        zurückkehren {
            // Tabellenhöhe tableHeight:"",
            // Gesamtzahl der Daten tableCount:0,
            // Tabellendatenliste tableList:[],
            // Wird es geladen? tableLoading: false,
            // Tabellensuchbedingungen tableSearch:{
                Seite:1
            }
        }
    },
    // Anweisungen registrieren: {
        "el-table-infinite-scroll": elTableInfiniteScroll,
    },
 
    erstellt() {
        let windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
        // Die Höhe der Tabelle dynamisch berechnen. 200 ist die Höhe aller anderen Elemente auf dem Bildschirm außer der Tabelle. Dies hängt von der tatsächlichen Situation ab. this.tableHeight = windowHeight - 200 + "px";
    },
    montiert(){
        dies.getTableData(diese.tableSearch);
    },
 
    Methoden: {
        // Tabellendaten anfordern getTableData(search) {
            let page = Suchseite;
            let url = "index?page=" + Seite;
            // Wenn Sie die Seite zum ersten Mal öffnen, müssen Sie die Daten einmal laden. Um zu verhindern, dass zu viele Daten automatisch ein Scrollen auslösen, müssen Sie das Laden einstellen this.tableLoading = true;
            dies.$http.get(url).then((Ergebnis) => {
                wenn (res.code == 10000) {
                    // Daten verketten this.tableList = this.tableList.concat(result.data.list);
                    this.tableCount = Ergebnis.Anzahl;
                    diese.tableSearch.page = Ergebnis.aktuell;
                    Dies.tableLoading = falsch;
                }
            });
        },
        // Weitere laden loadMore() {
            wenn (!this.tableLoading) {
                Dies.tableLoading = wahr;
                wenn (diese.Tabellenliste.Länge < diese.Tabellenanzahl) {
                    diese.tableSearch.page++;
                    dies.getTableData(diese.tableSearch);
                } anders {
                    this.$message("Alle Daten wurden geladen!");
                    Dies.tableLoading = falsch;
                }
            }
        },
    }
};
</Skript>

2. Passen Sie die Dropdown-Lademethode an

Das oben verwendete Plug-In muss auf Element-UI basieren. Wenn Element-UI nicht verwendet wird, können Sie nur selbst eine Dropdown-Ladung schreiben. Der Implementierungscode lautet wie folgt:

<Vorlage>
    <div Klasse="App-Container">
        <div :style="{height:tableHeight,overflow:'auto'}" id="tableBox">
            <!-- Tabellendaten ausgelassen-->
        </div>
    </div>
</Vorlage>
 
<Skript>
Standard exportieren {
    Name: "Index",
    Daten() {
        zurückkehren {
            // Tabellenhöhe tableHeight:"",
            // Gesamtzahl der Daten tableCount:0,
            // Tabellendatenliste tableList:[],
            // Wird es geladen? tableLoading: false,
            // Tabellensuchbedingungen tableSearch:{
                Seite:1
            }
        };
    },
    erstellt(){
        let windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
        // Höhe der Tabelle dynamisch berechnen. 200 ist die Höhe aller anderen Elemente auf dem Bildschirm außer der Tabelle. Dies hängt von der tatsächlichen Situation ab. this.tableHeight = windowHeight - 200 + 'px';
    },
    montiert() {
        dies.getTableData(diese.tableSearch);
        document.getElementById("tableBox").addEventListener('scroll',this.onTableScroll); 
    },
 
    vorZerstören() {
        // Entfernen Sie das Abhörereignis window.removeEventListener('scroll', this.onTableScroll)
    },
 
    Methoden: {
        aufTableScroll(){
            var obj = document.getElementById("tableBox");
            var scrollHeight = obj.scrollHeight;
            var scrollTop = obj.scrollTop; 
            var objHeight = obj.offsetHeight;  
            // 100 ist der Schwellenwert, der je nach tatsächlicher Situation angepasst werden kann if(scrollHeight <= (scrollTop + objHeight + 100) && !this.tableLoading && this.tableList.length<this.tableCount){ 
                Dies.tableLoading = wahr;
                diese.tableSearch.page++;
                setzeTimeout(()=>{   
                    dies.getTableData(diese.tableSearch);
                },300)
            }
        },
 
        getTableData(Suche){
            let page = Suchseite;
            let url = "index?page=" + Seite;
            // Wenn Sie die Seite zum ersten Mal öffnen, müssen Sie die Daten einmal laden. Um zu verhindern, dass zu viele Daten automatisch ein Scrollen auslösen, müssen Sie das Laden einstellen this.tableLoading = true;
            dies.$http.get(url).then((Ergebnis) => {
                wenn (res.code == 10000) {
                    // Daten verketten this.tableList = this.tableList.concat(result.data.list);
                    this.tableCount = Ergebnis.Anzahl;
                    diese.tableSearch.page = Ergebnis.aktuell;
                    Dies.tableLoading = falsch;
                }
            });
        },
        
     
    },
};
</Skript>

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:
  • Pull-Up-Laden und Pull-Down-Aktualisieren in der mobilen Vue.js-App
  • Vue.js integriert das Pull-Up-Laden und Pull-Down-Aktualisieren von Vux – Beispiel-Tutorial
  • Vue implementiert Ajax-Scrollen und Pulldown-Laden und verfügt auch über einen Ladeeffekt (empfohlen).
  • Lösen Sie das Konfliktproblem, wenn Vue mint-ui loadmore verwendet, um Pull-Up-Ladevorgänge und Pull-Down-Aktualisierungen zu implementieren, und eine Seite mehrere Pull-Up-Ladevorgänge verwendet
  • Das mobile Vue2.0-Terminal implementiert Pulldown-Aktualisierung und Pullup-Laden weiterer Beispiele
  • 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
  • Vue verwendet Better-Scroll, um Pulldown-Aktualisierung und Pullup-Laden zu erreichen
  • Das Laden von Pulldowns in Vue ist eigentlich nicht so kompliziert

<<:  Docker + Daocloud realisiert die automatische Erstellung und Bereitstellung von Front-End-Projekten

>>:  Zusammenfassung häufig verwendeter Zeit-, Datums- und Konvertierungsfunktionen in MySQL

Artikel empfehlen

Analysieren von AB-Leistungstestergebnissen unter Apache

Ich habe immer Loadrunner für Leistungstests verw...

Was Sie über Filter in Vue wissen müssen

Inhaltsverzeichnis Vorwort Was ist ein Filter So ...

So installieren und speichern Sie die PostgreSQL-Datenbank in Docker

Überspringen Sie die Docker-Installationsschritte...

So legen Sie die Speichergröße von Docker Tomcat fest

Wenn Sie Tomcat in Docker installieren, kann es b...

So installieren Sie MySQL 8.0 und melden sich bei MySQL unter MacOS an

Folgen Sie dem offiziellen Tutorial, laden Sie da...

So verwenden Sie cc.follow zur Kameraverfolgung in CocosCreator

Cocos Creator-Version: 2.3.4 Demo-Download: https...

Spezifische Verwendung globaler Variablen von node.js

Globales Objekt Alle Module können aufgerufen wer...

Zusammenfassung der grundlegenden Operationen für MySQL-Anfänger

Bibliotheksbetrieb Abfrage 1.SHOW DATABASE; ----A...

Details zu Makrotasks und Mikrotasks in JavaScript

Inhaltsverzeichnis 1. Was sind Mikroaufgaben? 2. ...

Lösung für FEHLER 1054 (42S22) beim Ändern des Passworts in MySQL 5.7

Ich habe MySQL 5.7 neu installiert. Beim Anmelden...

Zählen Sie die Listen-Tags in HTML

1. <dl> definiert eine Liste, <dt> de...

Detaillierte Erklärung der Verwendung und Funktion des MySQL-Cursors

[Verwendung und Funktion des MySQL-Cursors] Beisp...