In diesem Artikelbeispiel wird der spezifische Code von vue3, der seine eigene Paging-Komponente kapselt, zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt HintergrundWenn beim Durchsuchen von Listendaten viele Daten vorhanden sind und alle auf einmal angefordert werden, kann es zu Leistungseinbußen und Ladeverzögerungen kommen. In diesem Fall spielt die Paging-Komponente eine Schlüsselrolle. Sie kann nur einen Teil der Daten anfordern, ohne zu viel Seitenplatz einzunehmen. Wenn Sie andere Daten anzeigen möchten, können Sie eine Anforderung initiieren, indem Sie die Seitenzahl ändern und die Seitendaten aktualisieren. Nun kapseln wir die Paging-Komponente selbst Erforderliche Komponentenparameter
Komponenten-Landingcode my-pagination.vue <Vorlage> <div Klasse="meine-pagination"> <a href="javascript:;" :class="{ disabled: currentPage === 1 }" @click="changePage(false)">Vorherige Seite</a> <span v-if="currentPage > 3">...</span> <a href="javascript:;" v-for="Element in Liste" :Schlüssel="Artikel" :Klasse="{ aktiv: aktuelleSeite === Element }" @click="Seiteändern(Element)" >{{ Artikel }}</a > <span v-if="currentPage < Seiten - 2">...</span> <a href="javascript:;" :class="{ disabled: currentPage === pages }" @click="changePage(true)">Nächste Seite</a> </div> </Vorlage> <Skript> importiere { berechnet, ref } von 'vue-demi' Standard exportieren { Name: 'MyPagination', Requisiten: { gesamt: Typ: Nummer, Standard: 80 }, Seitengröße: { Typ: Nummer, Standard: 10 } }, setup(Eigenschaften, { emittieren, Attribute }) { // Aktuelle Seite const currentPage = ref(attrs.currentPage) // Berechnen Sie die Gesamtzahl der Seiten const pages = computed(() => Math.ceil(props.total / props.pagesize)) // Kombination der Seitenzahlenanzeige const list = computed(() => { const Ergebnis = [] // Wenn die Gesamtzahl der Seiten kleiner oder gleich 5 Seiten ist, if (pages <= 5) { für (lass i = 1; i <= Seiten; i++) { Ergebnis.push(i) } } anders { // Wenn die Gesamtzahl der Seiten größer als 5 Seiten ist // Kontrollieren Sie das Vorhandensein oder Fehlen von Auslassungspunkten an den beiden Enden, und die Anzahl der angezeigten Seitenzahlen wird mit der ausgewählten Seitenzahl zentriert, wenn (currentPage.value <= 2) { für (lass i = 1; i <= 5; i++) { Ergebnis.push(i) } } sonst wenn (aktuellerSeitenwert >= 3 und aktuellerSeitenwert <= Seitenwert - 2) { für (lass i = currentPage.value - 2; i <= currentPage.value + 2; i++) { Ergebnis.push(i) } } sonst wenn (aktuellerSeitenwert > Seitenwert - 2) { für (let i = Seiten.Wert - 4; i <= Seiten.Wert; i++) { Ergebnis.push(i) } } } Ergebnis zurückgeben }) // Klicken Sie auf die vorherige Seite, um die Seitenzahl zu ändern const changePage = type => { // Klicken Sie auf die Schaltfläche „Vorherige Seite“, wenn (Typ === false) { wenn (aktuellerSeitenwert <= 1) return aktuellerSeitenwert -= 1 } sonst wenn (Typ === wahr) { // Klicken Sie auf die Schaltfläche „Nächste Seite“, wenn (currentPage.value >= pages.value) return aktuellerSeitenwert += 1 } anders { // Klicken Sie auf die Seite currentPage.value = Typ } // Übergeben Sie die aktuelle Seitenzahl an die übergeordnete Komponente und führen Sie in diesem Ereignis zugehörige Vorgänge aus. emit('change-page', currentPage.value) } return { aktuelleSeite, Seiten, Liste, Seite ändern } } } </Skript> <style scoped lang="weniger"> .meine-pagination { Anzeige: Flex; Inhalt ausrichten: zentriert; Polsterung: 30px; > ein { Anzeige: Inline-Block; Polsterung: 5px 10px; Rand: 1px durchgezogen #e4e4e4; Rahmenradius: 4px; Rand rechts: 10px; &:schweben { Farbe: @xtxColor; } &.aktiv { Hintergrund: @xtxColor; Farbe: #fff; Rahmenfarbe: @xtxColor; } &.deaktiviert { Cursor: nicht erlaubt; Deckkraft: 0,4; &:schweben { Farbe: #333; } } } > Spanne { Rand rechts: 10px; } } </Stil> Verwenden von Komponenten <XtxPaginierung :gesamt="gesamt" :Seitengröße="reqParams.Seitengröße" :aktuelleSeite="1" @change-page="Seite ändern" /> Wirkung 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:
|
<<: Detaillierte Erläuterung des Implementierungsprozesses der ServerSocket-Standard-IP-Bindung
>>: So bedienen Sie JSON-Felder in MySQL
Dockerfile ist eine Textdatei, die Anweisungen en...
FIFO-Kommunikation (First In First Out) FIFO-Name...
Wann wird die Tabelle eingesetzt? Tabellen werden...
Inhaltsverzeichnis Einführung in Arrays Array-Lit...
Der folgende Beispielcode stellt die Prinzipien d...
Schauen Sie sich zuerst den Code an #/bin/sh Datu...
Inhaltsverzeichnis Drosselung und Anti-Shake Konz...
Das Plugin wird im Firefox-Browser installiert. D...
Inhaltsverzeichnis Was ist Vuex? Vuex-Nutzungszyk...
1. Entpacken Sie die Datei in das aktuelle Verzei...
https-Basisport 443. Er wird für etwas verwendet,...
Inhaltsverzeichnis I. Definition 2. Anwendungssze...
Wenn Sie ein Arbeitgeber fragt, ob in einer MySQL...
Inhaltsverzeichnis Finden Sie das Problem 1. So e...
Inhaltsverzeichnis 1. Holen Sie sich den Wert des...