Gebrauchsanweisung für vue-infinite-loading2.0
Dieses Mal bringe ich Ihnen die Anweisungen zur Verwendung von vue-infinite-loading2.0. Was sind die Vorsichtsmaßnahmen bei der Verwendung von vue-infinite-loading2.0? .
Einführung
Dies ist ein Infinite-Scroll-Plug-In, das in Vue.js verwendet wird und Ihnen dabei helfen kann, schnell eine Infinite-Scroll-Liste zu erstellen.
Funktionen
Mobilfreundlich
Kompatibel mit jedem scrollbaren Element
Es gibt verschiedene Spinner, die als Ladeanimationen verwendet werden können
Unterstützt die Anzeige von Ergebnissen nach dem Laden
Unterstützt zwei unbegrenzte Ladevorgänge in alle Richtungen
Installation
Hinweis: vue- Infinite-Loading2.0 kann nur in Vue.js2.0 verwendet werden. Wenn Sie es in Vue.js1.0 verwenden möchten, installieren Sie bitte die Version vue-infinite-loading1.3
npm install vue-infinite-loading --save
Importmethode
ES6-Modulimportmethode
import InfiniteLoading from 'vue-infinite-loading'; export default { components: { InfiniteLoading, }, };
CommonJS-Modulimportmethode
const InfiniteLoading = require('vue-infinite-loading'); export default { components: { InfiniteLoading, }, };
Andere Methoden
<script src="/path/to/vue-infinite-loading/dist/vue-infinite-loading.js"></script>
vue-infinite-loading.js wird sein registriert Eine globale Variable VueInfiniteLoading muss wie folgt verwendet werden:
... components: { VueInfiniteLoading:VueInfiniteLoading.default, } ...
Start
Grundlegende Verwendung
In diesem Beispiel Eine einfache unendliche Liste wird mit den folgenden drei Schritten erstellt:
Verwenden Sie in Ihrer Vorlage v-for, um eine Liste zu erstellen
Platzieren Sie die InfiniteLoading-Komponente am Ende der Liste.
Setzen Sie das ref-Attribut der InfiniteLoading-Komponente auf „infiniteLoading“, da es zum Auslösen des Ereignisses verwendet wird.
Erstellen und binden Sie eine ladende Rückruffunktion an die InfiniteLoading-Komponente.
Vorlage
<template> <p> <p v-for="item in list"> Line: <span v-text="item"></span> </p> <infinite-loading :on-infinite="onInfinite" ref="infiniteLoading"> </infinite-loading> </p> </template>
Skript
import InfiniteLoading from 'vue-infinite-loading'; export default { data() { return { list: [] }; }, methods: { onInfinite() { setTimeout(() => { const temp = []; for (let i = this.list.length + 1; i <= this.list.length + 20; i++) { temp.push(i); } this.list = this.list.concat(temp); this.$refs.infiniteLoading.$emit('$InfiniteLoading:loaded'); }, 1000); } }, components: { InfiniteLoading } };
ononInfinite Die Funktion, jedes Mal, wenn wir 20 Zahlen in das Listenarray einfügen. Wir verwenden setTimeout, um asynchrone Anfragen zu simulieren. Vergessen Sie nicht, ein $InfiniteLoading:loaded-Ereignis auszulösen, das der InfiniteLoading-Komponente mitteilt, dass die Daten erfolgreich heruntergeladen wurden.
Jetzt können wir den Effekt basierend auf dem obigen Code anzeigen.
Beispiel: Hacker-News-Listenseite
In diesem Beispiel imitieren wir eine Hacker-News-Listenseite , verwendet aber InfiniteLoading anstelle von pagination
Bevor wir mit diesem Beispiel beginnen, müssen wir Folgendes vorbereiten:
API zum Abrufen der Nachrichtenliste, in diesem Fall verwenden wir die HN Search API
Axios-Plug-in importieren, um Daten anzufordern
Vorlage
<p class="hacker-news-list"> <p class="hacker-news-header"> <a target="_blank" href="http://www.ycombinator.com/" rel="external nofollow" rel="external nofollow" >  </a> <span>Hacker News</span> </p> <p class="hacker-news-item" v-for="(item, key) in list"> <span class="num" v-text="key + 1"></span> <p> <a target="_blank" :href="item.url" rel="external nofollow" rel="external nofollow" v-text="item.title"></a> </p> <p> <small> <span v-text="item.points"></span> points by <a target="_blank" :href="'https://news.ycombinator.com/user?id=' + item.author" rel="external nofollow" rel="external nofollow" v-text="item.author"></a> | <a target="_blank" :href="'https://news.ycombinator.com/item?id=' + item.objectID" rel="external nofollow" rel="external nofollow" v-text="item.num_comments + ' comments'"></a> </small> </p> </p> <infinite-loading :on-infinite="onInfinite" ref="infiniteLoading"> <span slot="no-more"> There is no more Hacker News :( </span> </infinite-loading> </p>
In der Vorlage erstellen wir einen Header und eine Liste für die Hacker-News-Liste. Die Komponente InfiniteLoading wird in diesem Beispiel etwas anders verwendet als im vorherigen Beispiel. Wir haben den Eingabeaufforderungsinhalt angepasst, wenn basierend auf dem Slot keine Daten mehr vorhanden sind.
Skript
import InfiniteLoading from 'vue-infinite-loading'; import axios from 'axios'; const api = 'http://hn.algolia.com/api/v1/search_by_date?tags=story'; export default { data() { return { list: [] }; }, methods: { onInfinite() { axios.get(api, { params: { page: this.list.length / 20 + 1 } }).then((res) => { if (res.data.hits.length) { this.list = this.list.concat(res.data.hits); this.$refs.infiniteLoading.$emit('$InfiniteLoading:loaded'); if (this.list.length / 20 === 3) { this.$refs.infiniteLoading.$emit('$InfiniteLoading:complete'); } } else { this.$refs.infiniteLoading.$emit('$InfiniteLoading:complete'); } }); } }, components: { InfiniteLoading } };
In der Funktion onInfinite fordern wir eine Seite mit Nachrichten an und fügen sie jedes Mal in die Liste im Array ein . Wenn wir drei Seiten mit Nachrichten anfordern, wird das Ereignis $InfiniteLoading:complete ausgelöst, um der Komponente InfiniteLoading mitzuteilen, dass keine weiteren Daten geladen werden müssen. Es wird der Inhalt der Eingabeaufforderung angezeigt, den wir in der Vorlage angepasst haben, um anzuzeigen, dass keine Daten mehr vorhanden sind.
Stil
.hacker-news-list .hacker-news-item { margin: 10px 0; padding: 0 10px 0 32px; line-height: 16px; font-size: 14px; } .hacker-news-list .hacker-news-item .num { margin-top: 1px; margin-left: -32px; float: left; width: 32px; color: #888; text-align: right; } .hacker-news-list .hacker-news-item p { padding-left: 8px; margin: 0; } .hacker-news-list .hacker-news-item .num:after { content: "."; } .hacker-news-list .hacker-news-item p>a { color: #333; padding-right: 5px; } .hacker-news-list .hacker-news-item p a { text-decoration: none; } .hacker-news-list .hacker-news-item p small, .hacker-news-list .hacker-news-item p small a { color: #888; }
Mit Filter verwenden
在上个例子的基础上,我们将在头部创建一个下拉选择作为过滤器,当我们改变过滤器,列表将会重新加载。
Template
<p class="hacker-news-list"> <p class="hacker-news-header"> <a target="_blank" href="http://www.ycombinator.com/" rel="external nofollow" rel="external nofollow" >  </a> <span>Hacker News</span> <select v-model="tag" @change="changeFilter()"> <option value="story">Story</option> <option value="poll">Poll</option> <option value="show_hn">Show hn</option> <option value="ask_hn">Ask hn</option> <option value="front_page">Front page</option> </select> </p> <p class="hacker-news-item" v-for="(item, key) in list"> <span class="num" v-text="key + 1"></span> <p> <a target="_blank" :href="item.url" rel="external nofollow" rel="external nofollow" v-text="item.title"></a> </p> <p> <small> <span v-text="item.points"></span> points by <a target="_blank" :href="'https://news.ycombinator.com/user?id=' + item.author" rel="external nofollow" rel="external nofollow" v-text="item.author"></a> | <a target="_blank" :href="'https://news.ycombinator.com/item?id=' + item.objectID" rel="external nofollow" rel="external nofollow" v-text="item.num_comments + ' comments'"></a> </small> </p> </p> <infinite-loading :on-infinite="onInfinite" ref="infiniteLoading"> <span slot="no-more"> There is no more Hacker News :( </span> </infinite-loading> </p>
Script
import InfiniteLoading from 'vue-infinite-loading'; import axios from 'axios'; const api = 'http://hn.algolia.com/api/v1/search_by_date'; export default { data() { return { list: [], tag: 'story' }; }, methods: { onInfinite() { axios.get(api, { params: { tags: this.tag, page: this.list.length / 20 + 1 } }).then((res) => { if (res.data.hits.length) { this.list = this.list.concat(res.data.hits); this.$refs.infiniteLoading.$emit('$InfiniteLoading:loaded'); if (this.list.length / 20 === 10) { this.$refs.infiniteLoading.$emit('$InfiniteLoading:complete'); } } else { this.$refs.infiniteLoading.$emit('$InfiniteLoading:complete'); } }); }, changeFilter() { this.list = []; this.$nextTick(() => { this.$refs.infiniteLoading.$emit('$InfiniteLoading:reset'); }); } }, components: { InfiniteLoading } };
在changeFilter函数中,我们清楚了列表并等待DOM更新,然后我们触发一个$InfiniteLoading:reset事件,目的是让 InfiniteLoading 组件回到最初状态,它将立刻请求新的数据。
Style
在上个例子基础上增加样式
.demo-inner { margin-left: 20px; width: 261px; height: 455px; border: 1px solid #ccc; overflow: auto; } .hacker-news-list .hacker-news-header { padding: 2px; line-height: 14px; background-color: #f60; } .hacker-news-list { min-height: 455px; background-color: #f6f6ef; } .hacker-news-list .hacker-news-header select { float: right; color: #fff; background-color: transparent; border: 1px solid #fff; outline: none; }
服务端渲染
服务端渲染(SSR)是Vue.js2.0的新特性,当你在你的SSR应用中使用这个组件,会得到类似这样的错误:
Error: window is not defined ReferenceError: window is not defined at ... at ... at e.exports (...) at Object. (...) at p (...) at Object.e.exports.render.e (...) at p (...) at Object. (...) at p (...) at e.esModule.default (...)
因为style-loader不支持在这个时候本地导出,详情点这里,所以我们需要下面的变通方案,为了你的SSR应用:
import InfiniteLoading from 'vue-infinite-loading/src/components/Infiniteloading.vue';
代替
import InfiniteLoading from 'vue-infinite-loading';
npm install less less-loader --save-dev 如果你还没有安装它们。
然后你的SSR应用应该运行良好。如果不是,你可以加入这个issue去讨论。
属性
on-infinite
这是一个回调函数,当滚动到距离滚动父元素底部特定距离的时候,会被调用。
通常,在数据加载完成后,你应该在这个函数中发送$InfiniteLoading:loaded事件。
- type Function - reuqired true
distance
这是滚动的临界值。如果到滚动父元素的底部距离小于这个值,那么on-infinite回调函数就会被调用。
- type Number - required false - default 100 - unit pixel
spinner
通过这个属性,你可以选择一个你最喜爱旋转器作为加载动画。点击这里可以看到所有可用的旋转器。
- type String - required false - default 'default'
ref
正如你所知,这个属性是一个Vue.js的官方指令,用来获取子组件的实例。我们需要用它来得到 InfiniteLoading 组件的实例来发送事件。你可以用这种方式来得到实例:this.$refs[the value of ref attribute].
- type String - required true
direction
如果你设置这个属性为top,那么这个组件将在你滚到顶部的时候,调用on-infinite函数。
警告:你必须在数据加载后,手动地将滚动父元素的scrollTop设置为正确的值,否则,该组件会一次又一次调用on-infinite函数。
- type String - default 'bottom'
事件
InfiniteLoading 组件将处理一下事件。如果你需要通过组件的实例来$emit,则可以通过ref属性来得到组件实例。
$InfiniteLoading:loaded
通常,你需要在数据加载后发送这个事件, InfiniteLoading组件将隐藏加载动画,并且准备下一次触发。
$InfiniteLoading:complete
如果InfiniteLoading组件就不会接收$InfiniteLoading:loaded,当你发送这个事件后,它将为用户显示一个没有结果的提示。如果InfiniteLoading组件接收过$InfiniteLoading:loaded,当你发送这个事件的时候,它会为用户显示一个没有更多内容的提示。你可以利用slot来自定义需要显示的内容。
你的onInfinite函数可能像这个样子:
onInfinite() { this.$http.get(url, (res) => { if (res.data) { this.list = this.list.concat(res.data); this.$refs[your ref attirbute's value].$emit('$InfiniteLoading:loaded'); } else { this.$refs[your ref attirbute's value].$emit('$InfiniteLoading:complete'); } }); }
$InfiniteLoading:reset
InfiniteLoading组件将会回到最初的状态,并且on-infinite函数将会立刻被调用。大部分情况下,如果你把这个组件同过滤器或制表符一起使用,这个事件还是有用的。
插槽
你可以利用slot自定义提示的内容,当然,如果你喜欢的话,也可以使用默认内容:
<span slot="{{ slot name }}"> {{ Your content }} </span>
no-results
当InfiniteLoading组件接收到$InfiniteLoading:complete 事件并且它没有接收过$InfiniteLoading:loaded事件时,这个内容会显示出来。
- type String - default No results :(
no-more
当InfiniteLoading组件接收到$InfiniteLoading:complete 事件并且它已经接收过$InfiniteLoading:loaded事件时,这个内容会出现。
spinner
如果,你不喜欢当前旋转器,你可以自定义自己的旋转器作为加载时的动画。
- type HTML - default default spinner
旋转器
你可以用spinner属性,选择你最喜爱的旋转器作为加载动画:
<infinite-loading spinner="{{ spinner name }}"></infinite-loading>
点击这里可以查看几个可用的旋转器。
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Vue无限加载vue-infinite-loading使用详解
Das obige ist der detaillierte Inhalt vonGebrauchsanweisung für vue-infinite-loading2.0. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



1. Wechseln Sie zwischen Rauschunterdrückungsmodus und Transparenzmodus. Halten Sie den Griff der Ohrhörer etwa 1 Sekunde lang gedrückt, um zwischen Rauschunterdrückungsmodus und Transparenzmodus zu wechseln. 2. Drücken Sie im Musikmodus einmal auf den Kopfhörergriff, um die Musik anzuhalten oder abzuspielen. Drücken Sie zweimal auf den Kopfhörergriff, um das nächste Lied abzuspielen, oder drücken Sie dreimal auf den Kopfhörergriff, um das vorherige Lied abzuspielen. 3. Drücken Sie im Anrufmodus während eines Anrufs einmal auf den Kopfhörergriff, um den Anruf anzunehmen oder zu beenden. 4. Zurücksetzen Öffnen Sie die Kopfhörerbox. Wenn die Anzeigeleuchte der Ladebox fünfmal rot blinkt, lassen Sie die Taste los und die Kopfhörer werden zurückgesetzt. 3. So schließen Sie das Telefon an: 1. Öffnen Sie die Ladebox. 2. Halten Sie die Einstellungstaste 2 Sekunden lang gedrückt. 3. Wenn ein Popup-Fenster auf dem Telefonbildschirm angezeigt wird, klicken Sie, um die Verbindung zu bestätigen. 4. So überprüfen Sie den Akkustatus 1. Wenn die Ohrhörer mit dem Mobiltelefon verbunden sind, können Sie den Akkustand der Ohrhörer und der Ladebox im Popup-Fenster auf dem Mobiltelefonbildschirm überprüfen. 2,

Anleitung für den Zugriff und die Nutzung der Zahlungsfunktion von UniApp. Mit der Popularität des mobilen Bezahlens müssen viele Anwendungen Zahlungsfunktionen integrieren, um Benutzern die Durchführung von Online-Zahlungen zu erleichtern. Als plattformübergreifendes Entwicklungsframework auf Basis von Vue.js verfügt UniApp über die Merkmale einer einmaligen Entwicklung und plattformübergreifenden Nutzung und kann den Zugriff auf Zahlungsfunktionen problemlos implementieren. In diesem Artikel wird der Zugriff auf die Zahlungsfunktion in UniApp vorgestellt und Codebeispiele gegeben. 1. Um auf die Zahlungsfunktion zuzugreifen, fügen Sie Zahlungsberechtigungen in der Datei manifest.json auf der App-Seite hinzu:

So verwenden Sie das Hyperf-Framework für die Mehrsprachenverarbeitung. Einführung: Mit der Globalisierung des Internets ist die Mehrsprachenverarbeitung zu einer wesentlichen Fähigkeit für die Entwicklung vieler Anwendungen geworden. Bei der Entwicklung von Webanwendungen ist es sehr wichtig, mehrere Sprachen unterstützen zu können, da Sie so besser auf die Bedürfnisse verschiedener Benutzer eingehen können. In diesem Artikel wird die Verwendung des Hyperf-Frameworks für die mehrsprachige Verarbeitung vorgestellt und spezifische Codebeispiele bereitgestellt. Installieren Sie das Hyperf-Framework. Zuerst müssen wir das Hyperf-Framework installieren. Sie können dazu den Composer-Befehl verwenden

So verwenden Sie die Videoaufzeichnungsfunktion in Uniapp Heute stellt Ihnen der Autor vor, wie Sie die Videoaufzeichnungsfunktion im Uniapp-Entwicklungsframework verwenden. uniapp ist ein plattformübergreifendes Entwicklungsframework, das auf mehreren Plattformen gleichzeitig ausgeführt werden kann, basierend auf dem einmal geschriebenen Code, was für Entwickler sehr praktisch ist. In uniapp können wir die Kamerakomponente uni-AD-IN verwenden, um die Videoaufzeichnungsfunktion zu implementieren. Zuerst müssen wir Uni- installieren.

So filtern Sie Daten mithilfe der erweiterten Filterung. Bei der täglichen Arbeit ist das Filtern großer Datenmengen eine sehr häufige und wichtige Aufgabe. Die herkömmliche Filterfunktion ist möglicherweise nicht in der Lage, die Anforderungen an eine präzisere und komplexere Filterung von Daten zu erfüllen. Um dieses Problem zu lösen, bieten viele Bürosoftware erweiterte Filterfunktionen, mit denen Benutzer Daten effizienter filtern können. In diesem Artikel wird erläutert, wie Sie erweiterte Filterfunktionen zum Filtern von Daten verwenden. Schritt 1: Daten vorbereiten Bevor Sie die erweiterte Filterfunktion verwenden, müssen Sie zunächst die zu filternden Daten vorbereiten. Stellen Sie sicher, dass die Daten vollständig sind

Cookies sind eine gängige Webtechnologie, mit der Informationen über die persönlichen Vorlieben und das Verhalten der Benutzer auf Websites gespeichert werden. Im heutigen digitalen Zeitalter verwenden fast alle Websites Cookies, um eine Personalisierung und ein besseres Benutzererlebnis zu ermöglichen. In diesem Artikel wird die Verwendung von Cookies im Detail vorgestellt, um Benutzern zu helfen, diese Technologie besser zu verstehen und zu beherrschen. Lassen Sie uns zunächst das Grundkonzept von Cookies verstehen. Cookies sind kleine Textdateien, die von der Website im Browser des Benutzers gespeichert werden und Informationen über den Besuch des Benutzers auf der Website enthalten.

Wie verwende ich die Zizai Zhao-App? Diese Software hilft Benutzern nicht nur dabei, verlorene Dinge schnell wiederzufinden, sondern verfügt auch über eine spezielle intelligente Erinnerungsfunktion, mit der Sie alles schnell mitnehmen können. Wir sollten solch eine einfach zu bedienende Software verwenden. Für Benutzer, die sie gerade heruntergeladen haben: Wie sollten wir diese Software bedienen, wenn wir Dinge schnell abrufen möchten? Werfen wir einen Blick auf die Funktionsweise dieser Software. Ich hoffe, sie kann Ihnen dabei helfen, die von dieser Website bereitgestellte Nuss-Zizai-Zhao-App-Software schnell abzurufen auf Bluetooth und Ihr Mobiltelefon muss Bluetooth 4.0 unterstützen. 2. Öffnen Sie die Software und registrieren Sie einen neuen Benutzer. Sie können wählen, ob Sie sich per Mobiltelefon registrieren oder sich über Weibo oder QQ anmelden möchten. 3. Wille

Das Win7-System muss wie andere Windows-Systeme aktiviert werden, um alle Funktionen nutzen zu können. Wie aktiviert man also Win7? Die am häufigsten verwendete Methode ist die Verwendung des Win7-Aktivierungscodes oder des Win7-Aktivierungstools. Die einfachere Methode ist das Aktivierungstool win7activation. Der folgende Editor führt Sie in die Verwendung des Aktivierungstools win7activation ein. Die konkrete Methode ist wie folgt: 1. Laden Sie zunächst „WIN7Activation“ (Win7-Aktivierungstool) online herunter, kopieren Sie das Programm auf Ihren Computer und doppelklicken Sie darauf, um es zu öffnen. 2. Klicken Sie dann direkt auf: Aktivieren, und der Aktivierungsstatus beginnt automatisch. 3. Nachdem das Programm das Win7-System aktiviert hat, erscheint eine Eingabeaufforderung. Klicken Sie auf: Ja. 4. Neustart
