Heim Web-Frontend View.js So implementieren Sie unendliches Scrollen und Paging-Anzeige in Vue-Komponenten

So implementieren Sie unendliches Scrollen und Paging-Anzeige in Vue-Komponenten

Oct 09, 2023 pm 04:01 PM
加载 无限滚动 Paginierte Anzeige

So implementieren Sie unendliches Scrollen und Paging-Anzeige in Vue-Komponenten

So implementieren Sie unendliches Scrollen und Paging-Anzeige in Vue-Komponenten

Bei der Front-End-Entwicklung stoßen wir häufig auf Situationen, in denen eine große Datenmenge angezeigt werden muss. Um das Benutzererlebnis zu verbessern, zeigen wir die Daten normalerweise seitenweise an und laden automatisch die nächste Datenseite, wenn wir zum Ende der Seite scrollen. In diesem Artikel wird erläutert, wie Vue-Komponenten zum Implementieren unendlicher Scroll-, Lade- und Paging-Anzeigefunktionen verwendet werden, und es werden spezifische Codebeispiele gegeben.

Zuerst müssen wir die Backend-Schnittstelle für den Erhalt von Paging-Daten vorbereiten. Angenommen, wir haben eine Schnittstelle /api/data, über die wir die Datenliste der angegebenen Seitennummer (Seite) erhalten können. Das von der Schnittstelle zurückgegebene Datenformat lautet wie folgt: /api/data,通过该接口可以获取指定页码(page)的数据列表。接口返回的数据格式如下:

{
  "total": 100, // 总数据条数
  "list": [...] // 当前页的数据列表
}
Nach dem Login kopieren

接下来,我们可以使用Vue的组件化开发思想,将滚动加载和分页展示的功能封装成一个独立的组件。我们可以称之为InfiniteScroll组件。首先,我们需要在父组件中引入该组件,并传入必要的参数。

<template>
  <div>
    <infinite-scroll
      :api-url="'/api/data'" // 后端接口地址
      :page-size="10" // 每页数据条数
      @load-next-page="loadNextPage"
    >
      <!-- 数据展示的代码 -->
    </infinite-scroll>
  </div>
</template>
Nach dem Login kopieren

InfiniteScroll组件中,我们需要监听滚动事件,并在滚动到页面底部时触发加载下一页数据的操作。我们可以使用window对象的scroll事件来监听滚动事件。

export default {
  data() {
    return {
      page: 1, // 当前页码
      total: 0, // 总数据条数
      list: [] // 当前页的数据列表
    };
  },
  mounted() {
    window.addEventListener('scroll', this.handleScroll);
  },
  destroyed() {
    window.removeEventListener('scroll', this.handleScroll);
  },
  methods: {
    handleScroll() {
      const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
      const windowHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
      const documentHeight = document.documentElement.scrollHeight || document.body.scrollHeight;

      if (scrollTop + windowHeight >= documentHeight) {
        this.loadNextPage();
      }
    },
    async loadNextPage() {
      if (this.page >= Math.ceil(this.total / this.pageSize)) {
        return; // 已加载所有数据
      }

      const response = await fetch(`${this.apiUrl}?page=${this.page + 1}`);
      const result = await response.json();

      this.total = result.total;
      this.list = [...this.list, ...result.list];
      this.page++;
    }
  }
};
Nach dem Login kopieren

在上面的代码中,我们使用window.addEventListener方法来添加滚动事件监听,以便在滚动到页面底部时触发加载下一页数据的操作。同时,在组件销毁时需要使用window.removeEventListener方法来移除滚动事件监听。

handleScroll方法中,我们首先获取当前滚动的位置,包括页面滚动的距离(scrollTop)、视窗的高度(windowHeight)和文档的总高度(documentHeight)。然后判断当滚动位置加上视窗高度大于等于文档总高度时,说明已经滚动到页面底部,将触发加载下一页数据的操作。

loadNextPage方法中,我们首先判断是否已经加载所有数据,即当前页码是否大于数据总页数。如果已加载所有数据,则直接返回。否则,通过异步请求获取下一页数据,并将返回的数据合并到原有数据列表中,同时更新当前页码和总数据条数。

最后,在InfiniteScroll组件内部,我们可以根据获取到的数据进行相应的展示。

<template>
  <div>
    <ul>
      <li v-for="item in list" :key="item.id">{{ item.name }}</li>
    </ul>
    <div v-if="page >= Math.ceil(total / pageSize)">已加载所有数据</div>
  </div>
</template>
Nach dem Login kopieren

在上面的代码中,我们通过v-for指令遍历数据列表,并根据每个元素的id属性作为key,保证列表元素的唯一性。同时,我们在组件底部添加一个提示,当页码大于等于总数据页数时,显示"已加载所有数据"的提示信息。

综上所述,我们通过引入InfiniteScrollrrreee

Als Nächstes können wir die Komponentenentwicklungsidee von Vue verwenden, um die Funktionen des Scrollens, Ladens und Paging-Anzeigens in einer unabhängigen Komponente zu kapseln. Wir können es die InfiniteScroll-Komponente nennen. Zuerst müssen wir die Komponente in die übergeordnete Komponente einführen und die erforderlichen Parameter übergeben.

rrreee

In der InfiniteScroll-Komponente müssen wir das Scroll-Ereignis abhören und das Laden der nächsten Datenseite auslösen, wenn wir zum Ende der Seite scrollen. Wir können das scroll-Ereignis des window-Objekts verwenden, um auf Scroll-Ereignisse zu warten. 🎜rrreee🎜Im obigen Code verwenden wir die Methode window.addEventListener, um einen Scroll-Ereignis-Listener hinzuzufügen, der das Laden der nächsten Datenseite auslöst, wenn zum Ende der Seite gescrollt wird. Gleichzeitig müssen Sie die Methode window.removeEventListener verwenden, um den Scroll-Ereignis-Listener zu entfernen, wenn die Komponente zerstört wird. 🎜🎜In der handleScroll-Methode erhalten wir zunächst die aktuelle Scroll-Position, einschließlich der Seiten-Scroll-Distanz (scrollTop), der Höhe des Fensters (windowHeight) und der Gesamthöhe des Dokuments (documentHeight). Anschließend wird festgestellt, dass, wenn die Bildlaufposition plus Fensterhöhe größer oder gleich der Gesamthöhe des Dokuments ist, die Seite nach unten gescrollt wurde und die nächste Datenseite geladen wird wird ausgelöst. 🎜🎜In der Methode loadNextPage ermitteln wir zunächst, ob alle Daten geladen wurden, also ob die aktuelle Seitenzahl größer als die Gesamtzahl der Datenseiten ist. Wenn alle Daten geladen wurden, kehren Sie direkt zurück. Andernfalls rufen Sie die nächste Datenseite über eine asynchrone Anforderung ab, führen die zurückgegebenen Daten in die ursprüngliche Datenliste ein und aktualisieren gleichzeitig die aktuelle Seitenzahl und die Gesamtzahl der Datenelemente. 🎜🎜Schließlich können wir in der InfiniteScroll-Komponente die Daten entsprechend anzeigen. 🎜rrreee🎜Im obigen Code durchlaufen wir die Datenliste mit der Anweisung v-for und verwenden das Attribut id jedes Elements als Schlüssel , um die Eindeutigkeit von Listenelementen sicherzustellen. Gleichzeitig fügen wir am unteren Rand der Komponente eine Eingabeaufforderung hinzu. Wenn die Seitenzahl größer oder gleich der Gesamtzahl der Datenseiten ist, wird die Eingabeaufforderung „Alle Daten wurden geladen“ angezeigt. 🎜🎜Zusammenfassend lässt sich sagen, dass wir durch die Einführung der InfiniteScroll-Komponente und die Angabe der entsprechenden Parameter die Funktionen des unendlichen Scrollens und der Seitenanzeige realisieren können. Durch das Abhören von Scroll-Ereignissen wird die nächste Datenseite automatisch geladen, wenn zum Ende der Seite gescrollt wird, um den Effekt des unendlichen Scroll-Ladens zu erzielen. Gleichzeitig wird durch die Aktualisierung der Daten der Komponente eine Seitenanzeige basierend auf der Anzahl der Datenelemente auf jeder Seite und der Gesamtzahl der Datenelemente durchgeführt. 🎜🎜Ich hoffe, dass die in diesem Artikel bereitgestellten Codebeispiele für Sie hilfreich sind und es Ihnen ermöglichen, unendliche Scroll-Lade- und Seitenanzeigefunktionen in Vue-Komponenten zu implementieren. Wenn Sie Fragen oder Verbesserungsvorschläge haben, hinterlassen Sie bitte eine Nachricht zur Diskussion. 🎜

Das obige ist der detaillierte Inhalt vonSo implementieren Sie unendliches Scrollen und Paging-Anzeige in Vue-Komponenten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Fehler beim Laden des Plugins in Illustrator [Behoben] Fehler beim Laden des Plugins in Illustrator [Behoben] Feb 19, 2024 pm 12:00 PM

Erscheint beim Starten von Adobe Illustrator eine Meldung über einen Fehler beim Laden des Plug-Ins? Bei einigen Illustrator-Benutzern ist dieser Fehler beim Öffnen der Anwendung aufgetreten. Der Meldung folgt eine Liste problematischer Plugins. Diese Fehlermeldung weist darauf hin, dass ein Problem mit dem installierten Plug-In vorliegt, es kann jedoch auch andere Gründe haben, beispielsweise eine beschädigte Visual C++-DLL-Datei oder eine beschädigte Einstellungsdatei. Wenn dieser Fehler auftritt, werden wir Sie in diesem Artikel bei der Behebung des Problems unterstützen. Lesen Sie daher weiter unten weiter. Fehler beim Laden des Plug-Ins in Illustrator Wenn Sie beim Versuch, Adobe Illustrator zu starten, die Fehlermeldung „Fehler beim Laden des Plug-Ins“ erhalten, können Sie Folgendes verwenden: Als Administrator

Stremio-Untertitel funktionieren nicht; Fehler beim Laden der Untertitel Stremio-Untertitel funktionieren nicht; Fehler beim Laden der Untertitel Feb 24, 2024 am 09:50 AM

Untertitel funktionieren bei Stremio auf Ihrem Windows-PC nicht? Einige Stremio-Benutzer berichteten, dass in den Videos keine Untertitel angezeigt wurden. Viele Benutzer berichteten, dass ihnen die Fehlermeldung „Fehler beim Laden der Untertitel“ angezeigt wurde. Hier ist die vollständige Fehlermeldung, die bei diesem Fehler angezeigt wird: Beim Laden der Untertitel ist ein Fehler aufgetreten. Untertitel konnten nicht geladen werden: Dies könnte ein Problem mit dem von Ihnen verwendeten Plugin oder Ihrem Netzwerk sein. Wie in der Fehlermeldung angegeben, könnte es Ihre Internetverbindung sein, die den Fehler verursacht. Überprüfen Sie daher bitte Ihre Netzwerkverbindung und stellen Sie sicher, dass Ihr Internet ordnungsgemäß funktioniert. Abgesehen davon könnte es auch andere Gründe für diesen Fehler geben, darunter ein widersprüchliches Untertitel-Add-on, nicht unterstützte Untertitel für bestimmte Videoinhalte und eine veraltete Stremio-App. wie

PHP implementiert das unendliche Scrollen PHP implementiert das unendliche Scrollen Jun 22, 2023 am 08:30 AM

Mit der Entwicklung des Internets müssen immer mehr Webseiten das Laden durch Scrollen unterstützen, und das Laden durch unendliches Scrollen ist eine davon. Dadurch kann die Seite kontinuierlich neue Inhalte laden, sodass Benutzer reibungsloser im Internet surfen können. In diesem Artikel stellen wir vor, wie man das Laden von unendlichem Scrollen mit PHP implementiert. 1. Was ist unendliches Scrollen? Infinite Scroll Loading ist eine Methode zum Laden von Webinhalten basierend auf Bildlaufleisten. Sein Prinzip besteht darin, dass, wenn der Benutzer zum Ende der Seite scrollt, Hintergrunddaten asynchron über AJAX abgerufen werden, um kontinuierlich neue Inhalte zu laden. Diese Art von Lademethode

Outlook friert beim Einfügen eines Hyperlinks ein Outlook friert beim Einfügen eines Hyperlinks ein Feb 19, 2024 pm 03:00 PM

Wenn beim Einfügen von Hyperlinks in Outlook Probleme beim Einfrieren auftreten, kann dies an instabilen Netzwerkverbindungen, alten Outlook-Versionen, Störungen durch Antivirensoftware oder Add-In-Konflikten liegen. Diese Faktoren können dazu führen, dass Outlook Hyperlink-Vorgänge nicht ordnungsgemäß verarbeitet. Beheben, dass Outlook beim Einfügen von Hyperlinks einfriert. Verwenden Sie die folgenden Korrekturen, um das Einfrieren von Outlook beim Einfügen von Hyperlinks zu beheben: Überprüfen Sie installierte Add-Ins. Aktualisieren Sie Outlook. Deaktivieren Sie vorübergehend Ihre Antivirensoftware und versuchen Sie dann, ein neues Benutzerprofil zu erstellen. Office-Apps reparieren. Programm deinstallieren und neu installieren. Los geht's. 1] Überprüfen Sie die installierten Add-Ins. Möglicherweise verursacht ein in Outlook installiertes Add-In das Problem.

Wie erstelle ich mit Vue ein unendliches Scroll- und Wasserfall-Flow-Layout? Wie erstelle ich mit Vue ein unendliches Scroll- und Wasserfall-Flow-Layout? Jun 27, 2023 pm 01:32 PM

Vue.js ist ein beliebtes JavaScript-Framework, mit dem Entwickler auf einfache Weise dynamische, reaktionsfähige Webanwendungen erstellen können. Unter ihnen wird es von Entwicklern besonders wegen seiner leistungsstarken Komponentenentwicklungsfähigkeiten bevorzugt. Unendliches Scrollen und Wasserfall-Flow-Layout sind zu einem unverzichtbaren Merkmal der modernen Webentwicklung geworden. Ziel dieses Artikels ist es, die Verwendung von Vue.js in Kombination mit einigen Bibliotheken von Drittanbietern vorzustellen, um Funktionen für unendliches Scrollen und Wasserfallfluss-Layout zu implementieren. Erreiche unendliches Scrollen, unendliches Scrollen (Infinit

So lösen Sie das Problem, dass CSS nicht geladen werden kann So lösen Sie das Problem, dass CSS nicht geladen werden kann Oct 20, 2023 am 11:29 AM

Zu den Lösungen für das Problem, dass CSS nicht geladen werden kann, gehören die Überprüfung des Dateipfads, die Überprüfung des Dateiinhalts, das Löschen des Browser-Cache, die Überprüfung der Servereinstellungen, die Verwendung von Entwicklertools und die Überprüfung der Netzwerkverbindung. Detaillierte Einführung: 1. Überprüfen Sie zunächst den Pfad der CSS-Datei. Wenn sich die CSS-Datei in einem anderen Teil oder Unterverzeichnis der Website befindet, müssen Sie den richtigen Pfad angeben Die CSS-Datei befindet sich im Stammverzeichnis. 2. Überprüfen Sie den Dateiinhalt. Wenn der Pfad korrekt ist, liegt das Problem möglicherweise in der CSS-Datei usw.

So erstellen Sie mit HTML, CSS und jQuery eine endlos scrollbare Nachrichtenliste So erstellen Sie mit HTML, CSS und jQuery eine endlos scrollbare Nachrichtenliste Oct 24, 2023 am 11:00 AM

So erstellen Sie eine Nachrichtenliste mit unendlichem Scrollen mit HTML, CSS und jQuery. In der Webentwicklung ist das unendliche Scrollen eine gängige Interaktionstechnologie, die sich besonders für Seiten wie Nachrichtenlisten eignet, die große Datenmengen laden müssen. In diesem Artikel wird erläutert, wie Sie mithilfe von HTML, CSS und jQuery eine Nachrichtenliste mit unendlichem Bildlauf implementieren, und es werden spezifische Codebeispiele bereitgestellt. Zunächst benötigen wir eine grundlegende HTML-Struktur, um die Nachrichtenliste anzuzeigen. Hier ist ein einfaches Beispiel: &lt;!DOCTYPE

So implementieren Sie unendliches Scrollen, um die Anwendungsleistung mithilfe der virtuellen Liste von Vue zu optimieren So implementieren Sie unendliches Scrollen, um die Anwendungsleistung mithilfe der virtuellen Liste von Vue zu optimieren Jul 17, 2023 am 08:55 AM

So optimieren Sie die Anwendungsleistung durch unendliches Scrollen durch die virtuelle Liste von Vue. Da die Komplexität von Front-End-Anwendungen weiter zunimmt, insbesondere bei der Verarbeitung großer Datenmengen, treten auch einige Leistungsprobleme auf. In dieser Hinsicht bietet Vue ein leistungsstarkes Tool – eine virtuelle Liste (VirtualList), die die Anwendungsleistung bei der Verarbeitung großer Datenmengen erheblich verbessern kann, indem sichtbare Elemente in der Liste dynamisch gerendert werden. In diesem Artikel wird erläutert, wie Sie mithilfe der virtuellen Liste von Vue unendliches Scrollen implementieren und die Anwendungsleistung optimieren können. Wir werden ein virtuelles Adressbuch verwenden

See all articles