Heim Web-Frontend View.js Wie implementiert man das Scrollen von Bildern oder Listen in Vue?

Wie implementiert man das Scrollen von Bildern oder Listen in Vue?

Jun 25, 2023 pm 03:40 PM
vue Scrollenlast Bildliste

Da Webanwendungen immer komplexer werden, müssen wir oft eine große Anzahl von Bildern oder Listen auf der Seite anzeigen. Wenn Sie den gesamten Inhalt auf einmal laden, wirkt sich dies stark auf die Ladegeschwindigkeit der Seite und das Benutzererlebnis aus. In diesem Fall hat sich die rollende Beladung zu einer sehr beliebten Methode entwickelt.

Scrollendes Laden, auch unendliches Scrollen genannt, bezieht sich auf das Anfordern nachfolgender Daten in Echtzeit durch AJAX-Technologie, während der Benutzer die Seite scrollt. Diese Technologie wird häufig auf Social-Media-Seiten wie Facebook, Twitter, Instagram usw. eingesetzt, um ein effizientes Erlebnis zu erreichen.

In Vue.js gibt es normalerweise zwei Möglichkeiten, das rollierende Laden zu implementieren: Eine besteht darin, selbst Code zu schreiben, und die andere darin, ein Plug-In eines Drittanbieters zu verwenden. Als nächstes werden wir sie einzeln vorstellen.

1. Schreiben Sie Ihren eigenen Code, um das rollierende Laden zu implementieren

Vue.js bietet eine sehr praktische V-Scroll-Anweisung, mit der Sie die Scroll-Ereignisse der Seite überwachen können. Wir können feststellen, ob der scrollTop-Abstand des div-Elements beim Scrollen den unteren Rand erreicht. Wenn er den unteren Rand erreicht, werden nachfolgende Datenanforderungen ausgelöst.

Das Folgende ist ein Beispielcode, der V-Scroll verwendet, um das Scrollen beim Laden von Bildern zu implementieren:

<template>
  <div class="image-list" v-scroll="onScroll">
    <div class="image" v-for="image in images" :key="image.id">
      <img :src="image.src" />
    </div>
    <div v-if="loading">加载中...</div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      images: [],
      loading: false,
      page: 1,
      pageSize: 10
    }
  },

  mounted() {
    this.loadImages()
  },

  methods: {
    loadImages() {
      this.loading = true
      // 模拟请求数据,每次请求 10 条数据
      setTimeout(() => {
        let start = (this.page - 1) * this.pageSize
        let end = start + this.pageSize
        for (let i = start; i < end; i++) {
          this.images.push({
            id: i,
            src: `http://www.example.com/images/${i}.jpg`
          })
        }
        this.loading = false
        this.page++
      }, 1000)
    },

    onScroll(e) {
      // 获取 div 元素的 scrollTop 和 clientHeight
      let scrollTop = e.target.scrollTop
      let clientHeight = e.target.clientHeight
      let scrollHeight = e.target.scrollHeight
      // 比较 scrollTop + clientHeight 和 scrollHeight
      if (scrollTop + clientHeight >= scrollHeight) {
        this.loadImages()
      }
    }
  }
}
</script>

In diesem Beispiel verwenden wir V-Scroll, um das Scroll-Ereignis des div-Elements abzuhören und festzustellen, ob es den Tiefpunkt erreicht hat In der onScroll-Methode wird am Ende die Methode „loadImages“ ausgelöst, die eine asynchrone Anforderung von Daten simuliert und die Daten in das Array „images“ schiebt. Um das Benutzererlebnis zu verbessern, haben wir außerdem eine Ladevariable hinzugefügt, die angibt, dass Daten in Echtzeit geladen werden.

2. Verwenden Sie Plug-Ins von Drittanbietern, um das Rolling Loading zu implementieren.

Zusätzlich dazu, dass wir selbst Code schreiben, um das Rolling Loading zu implementieren, können wir auch einige Plug-Ins von Drittanbietern verwenden, um das Rolling Loading zu implementieren. Hier stellen wir zwei häufig verwendete Plug-Ins vor, nämlich vue-infinite-scroll und vue-virtual-scroll-list.

  1. vue-infinite-scroll-Plugin

vue-infinite-scroll ist ein auf Vue.js basierendes Infinite-Scroll-Plugin, das uns dabei helfen kann, Scroll-Ladelisten, Bilder und andere Szenarien zu realisieren. Die Verwendung dieses Plug-Ins ist sehr einfach. Sie müssen lediglich die Anweisung v-infinite-scroll zu der Komponente hinzufügen, die das rollierende Laden implementieren muss, und dann die Methode angeben, die das rollierende Laden auslösen muss.

Das Folgende ist ein Beispielcode, der das Vue-Infinite-Scroll-Plug-In verwendet, um eine Scroll-Ladeliste zu implementieren:

<template>
  <div class="list" v-infinite-scroll="loadMore">
    <div class="item" v-for="(item, index) in items" :key="index">
      {{ item.text }}
    </div>
  </div>
</template>

<script>
import InfiniteScroll from 'vue-infinite-scroll'

export default {
  mixins: [InfiniteScroll],

  data() {
    return {
      items: []
    }
  },

  methods: {
    loadMore() {
      // 模拟异步请求数据
      setTimeout(() => {
        for (let i = 0; i < 10; i++) {
          this.items.push({ text: `Item ${this.items.length + 1}` })
        }
      }, 1000)
    }
  }
}
</script>

In diesem Beispiel haben wir das Vue-Infinite-Scroll-Plug-In zunächst über npm installiert und eingeführt in das Bauteil ein. Anschließend verwenden wir Mixins, um eine Vue-Instanz in die aktuelle Komponente zu mischen, die automatisch ein Unendlich-Scroll-Ereignis erstellt, das ausgelöst werden kann. Schließlich geben wir die Methode „loadMore“ in der Direktive „v-infinite-scroll“ an, die eine asynchrone Anforderung von Daten simuliert und die Daten in das Array „items“ schiebt.

  1. vue-virtual-scroll-list-Plugin

vue-virtual-scroll-list ist ein virtuelles Scrolling-Plugin basierend auf Vue.js, das uns dabei helfen kann, schnell umfangreiche Listen-Scrolling-Funktionen zu implementieren und die Seite zu verbessern Leistung und Benutzererfahrung. Im Gegensatz zum herkömmlichen Scroll-Laden verwendet vue-virtual-scroll-list die virtuelle Scroll-Technologie, um Datenelemente nur im aktuell sichtbaren Bereich zu rendern, wodurch eine große Anzahl von DOM-Renderings und -Neuanordnungen vermieden und die Effizienz und Glätte der Seitenausgaben verbessert werden .

Das Folgende ist ein Beispielcode, der das Vue-Virtual-Scroll-List-Plug-In verwendet, um eine Scroll-Ladeliste zu implementieren:

<template>
  <virtual-list
    :size="50"
    :remain="10"
    :data-key="'id'"
    :data-sources="items"
    :data-component="$options.components.item"
    @load="loadMore"
  >
  </virtual-list>
</template>

<script>
import VirtualList from 'vue-virtual-scroll-list'
import Item from './Item.vue'

export default {
  components: { Item },

  data() {
    return {
      items: []
    }
  },

  methods: {
    loadMore(start, end) {
      // 模拟异步请求数据
      setTimeout(() => {
        let count = end - start
        for (let i = 0; i < count; i++) {
          this.items.push({ id: this.items.length + 1, text: `Item ${this.items.length + 1}` })
        }
      }, 1000)
    }
  }
}
</script>

In diesem Beispiel haben wir zuerst das Vue-Virtual-Scroll-List-Plug-In durch installiert npm und führte es in die Komponente ein. Anschließend verwenden wir die Komponente in der Vorlage, die Parameter wie Größe, Rest, Datenschlüssel, Datenquellen und Datenkomponente akzeptiert.

Unter diesen gibt der Größenparameter die Höhe jedes Datenelements an, der verbleibende Parameter gibt die Anzahl der Vorrenderings an, Datenschlüssel gibt das Feld an, das zur eindeutigen Identifizierung jedes Datenelements verwendet wird, und Datenquellen geben die Datenliste an muss gerendert werden, data-component gibt die Rendering-Komponente des Datenelements an. Schließlich führen wir die Logik der asynchronen Datenanforderung im Ladeereignis aus.

Fazit

Durch die obige Einführung können wir feststellen, dass es viele Möglichkeiten gibt, das Scrollen von Bildern oder Listen in Vue.js zu implementieren. Obwohl das Schreiben von Code selbst flexibel ist, erfordert es viel Code und erfordert einen gewissen Zeit- und Energieaufwand. Die Verwendung von Plug-Ins von Drittanbietern ist zwar einfach, erfordert jedoch ein tiefgreifendes Verständnis der Prinzipien und der Verwendung von Plug-Ins um das Geschäft besser zu entwickeln. Daher müssen Sie bei der Implementierung des rollierenden Ladens eine Methode auswählen, die basierend auf dem spezifischen Geschäftsszenario und Ihrer eigenen Stärke zu Ihnen passt.

Das obige ist der detaillierte Inhalt vonWie implementiert man das Scrollen von Bildern oder Listen in Vue?. 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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Rimworld odyssey wie man fischt
1 Monate vor By Jack chen
Kann ich zwei Alipay -Konten haben?
1 Monate vor By 下次还敢
Anfängerleitfaden zu Rimworld: Odyssey
1 Monate vor By Jack chen
Variabler PHP -Bereich erklärt
3 Wochen 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)

Heiße Themen

PHP-Tutorial
1506
276
Welche Bedeutung hat die Reaktivitätsumwandlung von Vues (experimentell, dann entfernt) und seine Ziele? Welche Bedeutung hat die Reaktivitätsumwandlung von Vues (experimentell, dann entfernt) und seine Ziele? Jun 20, 2025 am 01:01 AM

ReaktivitätsformInvue3AMEDTosimplifyStellingRectiveAtaTAnyautomatic -TrackingAnagingRiftingRifting -Wirklichkeit mit

Wie können Internationalisierung (I18N) und Lokalisierung (L10N) in einer VUE -Anwendung implementiert werden? Wie können Internationalisierung (I18N) und Lokalisierung (L10N) in einer VUE -Anwendung implementiert werden? Jun 20, 2025 am 01:00 AM

Internationalisierung undLokalisationInvueAppsAprimal-HandleDusedthevuei18nPlugin.1.Installvue-i18nvianpMoryarn.2.CreatelocalejsonFiles (z

Was ist die Server -Side -Rendering -SSR in Vue? Was ist die Server -Side -Rendering -SSR in Vue? Jun 25, 2025 am 12:49 AM

Server-Siderenderering (SSR) InvueimerProveSperformanceAndSoBygeneratingHtmlontheserver

Wie implementieren Sie Übergänge und Animationen in Vue? Wie implementieren Sie Übergänge und Animationen in Vue? Jun 24, 2025 pm 02:17 PM

ToaddtransitionSandanimationInvue, Anwendungseingebungen, Anwendungen, LeveragetransitionhooksforControl und optimizeperformance.1.WrapelementsWitHandApplycsstransitionClasses wie unein- und aktiv-activeBasicfacefade-Lideffeekts.2.

Wie baue ich eine Komponentenbibliothek mit Vue? Wie baue ich eine Komponentenbibliothek mit Vue? Jul 10, 2025 pm 12:14 PM

Um eine VUE -Komponentenbibliothek zu erstellen, muss die Struktur rund um das Geschäftsszenario gestaltet werden und dem vollständigen Entwicklungs-, Testen- und Freigabungsprozess folgen. 1. Das strukturelle Design sollte nach Funktionsmodulen klassifiziert werden, einschließlich grundlegender Komponenten, Layoutkomponenten und Geschäftskomponenten. 2. Verwenden Sie SCSS- oder CSS -Variablen, um das Thema und den Stil zu vereinen. 3.. Vereinen Sie die Namenspezifikationen und führen Sie Eslint und schöner ein, um den konsistenten Codestil zu gewährleisten. V. 5. Verwenden Sie Vite und andere Tools, um als NPM -Pakete zu packen und Rollupoptions zu konfigurieren. 6. Befolgen Sie die SEMVER -Spezifikation, um Versionen und ChangeLogs beim Veröffentlichen zu verwalten.

So verwenden Sie PHP, um eine Q & A -Community -Plattform zu entwickeln, detaillierte Erläuterung des interaktiven Monetisierungsmodells mit PHP -Community So verwenden Sie PHP, um eine Q & A -Community -Plattform zu entwickeln, detaillierte Erläuterung des interaktiven Monetisierungsmodells mit PHP -Community Jul 23, 2025 pm 07:21 PM

1. Die erste Wahl für die Kombination aus Laravel Mysql Vue/React in der PHP -Entwicklungsfrage und der Antwortgemeinschaft ist die erste Wahl für die Kombination aus Laravel Mysql Vue/React aufgrund ihrer Reife im Ökosystem und der hohen Entwicklungseffizienz; 2. Die hohe Leistung erfordert Abhängigkeit von Cache (REDIS), Datenbankoptimierung, CDN und asynchronen Warteschlangen; 3. Die Sicherheit muss mit Eingabefilterung, CSRF -Schutz, HTTPS, Kennwortverschlüsselung und Berechtigungssteuerung erfolgen. V.

Was ist der Zweck der NextTick -Funktion in Vue und wann ist es notwendig? Was ist der Zweck der NextTick -Funktion in Vue und wann ist es notwendig? Jun 19, 2025 am 12:58 AM

NextTick wird in Vue verwendet, um Code nach DOM -Update auszuführen. Wenn sich die Daten ändert, aktualisiert VUE das DOM nicht sofort, sondern stellt ihn in die Warteschlange ein und verarbeitet es in der nächsten Ereignisschleife "Tick". Wenn Sie also auf das aktualisierte DOM zugreifen oder bedienen müssen, sollte NextTick verwendet werden. Zu den gemeinsamen Szenarien gehören: Zugriff auf den aktualisierten DOM-Inhalt, die Zusammenarbeit mit Bibliotheken von Drittanbietern, die sich auf den DOM-Zustand verlassen, und berechnen basierend auf der Elementgröße; Die Nutzung beinhaltet das Aufrufen. Zu den Vorsichtsmaßnahmen gehören: Vermeidung übermäßiger Verwendung, in den meisten Fällen ist keine manuelle Auslöser erforderlich, und ein NextTick kann gleichzeitig mehrere Updates erfassen.

So entwickeln Sie das KI -Intelligentformsystem mit PHP -PHP -Intelligent -Formular und Analyse So entwickeln Sie das KI -Intelligentformsystem mit PHP -PHP -Intelligent -Formular und Analyse Jul 25, 2025 pm 05:54 PM

Bei der Auswahl eines geeigneten PHP -Frameworks müssen Sie nach den Projektanforderungen umfassend berücksichtigen: Laravel ist für die schnelle Entwicklung geeignet und bietet eloquentorm- und Blade -Vorlagenmotoren, die für den Datenbankbetrieb und das dynamische Formrending bequem sind. Symfony ist flexibler und für komplexe Systeme geeignet. CodeIgniter ist leicht und für einfache Anwendungen mit hohen Leistungsanforderungen geeignet. 2. Um die Genauigkeit von KI-Modellen sicherzustellen, müssen wir mit einem qualitativ hochwertigen Datentraining, einer angemessenen Auswahl von Bewertungsindikatoren (wie Genauigkeit, Rückruf, F1-Wert), regelmäßiger Leistungsbewertung und Modellabstimmung und sicherstellen, dass die Codequalität durch Testen und Integrationstests der Code sichergestellt wird, um die Eingabedaten kontinuierlich zu überwachen. 3.. Viele Maßnahmen sind erforderlich, um die Privatsphäre der Benutzer zu schützen: Verschlüsseln und speichern sensible Daten (wie AES

See all articles