Heim > Web-Frontend > js-Tutorial > Verwenden der Paginierung in Vue

Verwenden der Paginierung in Vue

Guanhui
Freigeben: 2020-06-13 09:52:02
nach vorne
2675 Leute haben es durchsucht

Verwenden der Paginierung in Vue

Die Paginierungsfunktion verbessert das Benutzererlebnis, indem sie es Benutzern ermöglicht, Daten in kleineren Blöcken oder Seiten zu visualisieren. So erstellen Sie eine Vue.js-Komponente mit Paginierung, sodass wir jeweils nur einen Teil der Daten anzeigen können.

Ich beginne damit, unsere JavaScript-Objekte einzeln durchzugehen und dann die Vorlage anzuzeigen.

Die einzigen lokalen Daten, die ich benötige, ist die Seitenzahl.

data(){
    return {
      pageNumber: 0  // default to page 0
    }
}
Nach dem Login kopieren

Für Requisiten sind Daten erforderlich. Außerdem habe ich den Größenparameter definiert, um die maximale Datenmenge auf jeder Seite zu speichern.

props:{
    listData:{
      type:Array,
      required:true
    },
    size:{
      type:Number,
      required:false,
      default: 10
    }
}
Nach dem Login kopieren

In Methoden habe ich zwei Methoden für die nächste Seite und die vorherige Seite definiert:

methods:{
      nextPage(){
         this.pageNumber++;
      },
      prevPage(){
        this.pageNumber--;
      }
}
Nach dem Login kopieren

Ich verwende den berechneten Attributwert, um zu berechnen, wie viele Seiten es gibt:

pageCount(){
      let l = this.listData.length,
          s = this.size;
      return Math.floor(l/s);
}
Nach dem Login kopieren

paginatedData besteht darin, das berechnete Attribut der gefilterten Daten abzurufen:

paginatedData(){
    const start = this.pageNumber * this.size,
          end = start + this.size;
     return this.listData.slice(start, end);
}
Nach dem Login kopieren

Änderung: Am Anfang habe ich .splice verwendet, um das Array zu kopieren, aber eine perfektere Möglichkeit ist die Verwendung der .slice-Methode, vielen Dank an Alexander Karelas hier.

In der Vorlage:

<div>
  <ul>
    <li v-for="p in paginatedData">
      {{p.first}} 
      {{p.last}}  
      {{p.suffix}}
    </li>
  </ul>
  <button @click="prevPage">
    Previous
  </button>
  <button @click="nextPage">
    Next
  </button>
</div>
Nach dem Login kopieren

Ich möchte verhindern, dass der Benutzer die Schaltfläche am Anfang oder Ende drückt. Für die Schaltfläche „Vorherige Seite“ habe ich Folgendes hinzugefügt: „disabled="pageNumber=0" und „for“. Zur Schaltfläche „nextPage“ habe ich hinzugefügt: „disabled="pageNumber >= pagecount -1".

Empfohlenes Tutorial: „JS-Tutorial

Das obige ist der detaillierte Inhalt vonVerwenden der Paginierung in Vue. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage