


Comment implémenter le chargement par défilement infini et l'affichage de la pagination dans les composants Vue
Comment implémenter le chargement par défilement infini et l'affichage de la pagination dans les composants Vue
Dans le développement front-end, nous rencontrons souvent des situations où une grande quantité de données doit être affichée. Afin d'améliorer l'expérience utilisateur, nous affichons généralement les données dans des pages et chargeons automatiquement la page de données suivante lors du défilement vers le bas de la page. Cet article expliquera comment utiliser les composants Vue pour implémenter des fonctions de chargement par défilement infini et d'affichage de pagination, et donnera des exemples de code spécifiques.
Tout d'abord, nous devons préparer l'interface backend pour obtenir les données de pagination. Supposons que nous ayons une interface /api/data
, à travers laquelle nous pouvons obtenir la liste de données du numéro de page (page) spécifié. Le format de données renvoyé par l'interface est le suivant : /api/data
,通过该接口可以获取指定页码(page)的数据列表。接口返回的数据格式如下:
{ "total": 100, // 总数据条数 "list": [...] // 当前页的数据列表 }
接下来,我们可以使用Vue的组件化开发思想,将滚动加载和分页展示的功能封装成一个独立的组件。我们可以称之为InfiniteScroll
组件。首先,我们需要在父组件中引入该组件,并传入必要的参数。
<template> <div> <infinite-scroll :api-url="'/api/data'" // 后端接口地址 :page-size="10" // 每页数据条数 @load-next-page="loadNextPage" > <!-- 数据展示的代码 --> </infinite-scroll> </div> </template>
在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++; } } };
在上面的代码中,我们使用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>
在上面的代码中,我们通过v-for
指令遍历数据列表,并根据每个元素的id
属性作为key
,保证列表元素的唯一性。同时,我们在组件底部添加一个提示,当页码大于等于总数据页数时,显示"已加载所有数据"的提示信息。
综上所述,我们通过引入InfiniteScroll
rrreee
InfiniteScroll
. Tout d’abord, nous devons introduire le composant dans le composant parent et transmettre les paramètres nécessaires. rrreee
Dans le composantInfiniteScroll
, nous devons écouter l'événement scroll et déclencher le chargement de la page de données suivante lors du défilement vers le bas de la page. Nous pouvons utiliser l'événement scroll
de l'objet window
pour écouter les événements de défilement. 🎜rrreee🎜Dans le code ci-dessus, nous utilisons la méthode window.addEventListener
pour ajouter un écouteur d'événement de défilement afin de déclencher le chargement de la page de données suivante lors du défilement vers le bas de la page. Dans le même temps, vous devez utiliser la méthode window.removeEventListener
pour supprimer l'écouteur d'événement de défilement lorsque le composant est détruit. 🎜🎜Dans la méthode handleScroll
, nous obtenons d'abord la position de défilement actuelle, y compris la distance de défilement de la page (scrollTop), la hauteur de la fenêtre (windowHeight) et la hauteur totale du document (documentHeight). Ensuite, il est déterminé que lorsque la position de défilement plus la hauteur de la fenêtre est supérieure ou égale à la hauteur totale du document, cela signifie que la page a défilé vers le bas, et l'opération de chargement de la page de données suivante sera déclenché. 🎜🎜Dans la méthode loadNextPage
, nous déterminons d'abord si toutes les données ont été chargées, c'est-à-dire si le numéro de page actuel est supérieur au nombre total de pages de données. Si toutes les données ont été chargées, revenez directement. Sinon, obtenez la page de données suivante via une requête asynchrone, fusionnez les données renvoyées dans la liste de données d'origine et mettez à jour le numéro de page actuel et le nombre total d'éléments de données en même temps. 🎜🎜Enfin, à l'intérieur du composant InfiniteScroll
, nous pouvons afficher les données en conséquence. 🎜rrreee🎜Dans le code ci-dessus, nous parcourons la liste de données via l'instruction v-for
et utilisons l'attribut id
de chaque élément comme clé
, garantissant l'unicité des éléments de la liste. Dans le même temps, nous ajoutons une invite au bas du composant. Lorsque le numéro de page est supérieur ou égal au nombre total de pages de données, le message d'invite « Toutes les données ont été chargées » s'affiche. 🎜🎜Pour résumer, en introduisant le composant InfiniteScroll
et en donnant les paramètres correspondants, nous pouvons réaliser les fonctions de chargement par défilement infini et d'affichage de pagination. En écoutant les événements de défilement, la page de données suivante est automatiquement chargée lors du défilement vers le bas de la page pour obtenir l'effet de chargement de défilement infini. Dans le même temps, en mettant à jour les données du composant, l'affichage des pages est effectué en fonction du nombre d'éléments de données sur chaque page et du nombre total d'éléments de données. 🎜🎜J'espère que les exemples de code fournis dans cet article vous seront utiles et vous permettront d'implémenter des fonctions de chargement par défilement infini et d'affichage de pagination dans les composants Vue. Si vous avez des questions ou des suggestions d'amélioration, veuillez laisser un message pour discussion. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)
![Erreur de chargement du plugin dans Illustrator [Corrigé]](https://img.php.cn/upload/article/000/465/014/170831522770626.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Lors du lancement d'Adobe Illustrator, un message d'erreur de chargement du plug-in apparaît-il ? Certains utilisateurs d'Illustrator ont rencontré cette erreur lors de l'ouverture de l'application. Le message est suivi d'une liste de plugins problématiques. Ce message d'erreur indique qu'il y a un problème avec le plug-in installé, mais il peut également être provoqué par d'autres raisons telles qu'un fichier DLL Visual C++ endommagé ou un fichier de préférences endommagé. Si vous rencontrez cette erreur, nous vous guiderons dans cet article pour résoudre le problème, alors continuez à lire ci-dessous. Erreur de chargement du plug-in dans Illustrator Si vous recevez un message d'erreur « Erreur de chargement du plug-in » lorsque vous essayez de lancer Adobe Illustrator, vous pouvez utiliser les éléments suivants : En tant qu'administrateur

Les sous-titres ne fonctionnent pas sur Stremio sur votre PC Windows ? Certains utilisateurs de Stremio ont signalé que les sous-titres n'étaient pas affichés dans les vidéos. De nombreux utilisateurs ont signalé avoir rencontré un message d'erreur indiquant « Erreur de chargement des sous-titres ». Voici le message d'erreur complet qui apparaît avec cette erreur : Une erreur s'est produite lors du chargement des sous-titres. Échec du chargement des sous-titres : Cela pourrait être un problème avec le plugin que vous utilisez ou avec votre réseau. Comme l’indique le message d’erreur, il se peut que ce soit votre connexion Internet qui soit à l’origine de l’erreur. Veuillez donc vérifier votre connexion réseau et vous assurer que votre Internet fonctionne correctement. En dehors de cela, il peut y avoir d'autres raisons derrière cette erreur, notamment un module complémentaire de sous-titres conflictuels, des sous-titres non pris en charge pour un contenu vidéo spécifique et une application Stremio obsolète. comme

Avec le développement d'Internet, de plus en plus de pages Web doivent prendre en charge le chargement par défilement, et le chargement par défilement infini en fait partie. Il permet à la page de charger continuellement du nouveau contenu, permettant ainsi aux utilisateurs de naviguer sur le Web plus facilement. Dans cet article, nous présenterons comment implémenter le chargement par défilement infini à l'aide de PHP. 1. Qu'est-ce que le chargement par défilement infini ? Le chargement par défilement infini est une méthode de chargement de contenu Web basée sur des barres de défilement. Son principe est que lorsque l'utilisateur fait défiler vers le bas de la page, les données d'arrière-plan sont récupérées de manière asynchrone via AJAX pour charger en continu du nouveau contenu. Ce type de méthode de chargement

Si vous rencontrez des problèmes de blocage lors de l'insertion de liens hypertexte dans Outlook, cela peut être dû à des connexions réseau instables, à d'anciennes versions d'Outlook, à des interférences provenant d'un logiciel antivirus ou à des conflits de compléments. Ces facteurs peuvent empêcher Outlook de gérer correctement les opérations de liens hypertexte. Corriger le blocage d'Outlook lors de l'insertion d'hyperliens Utilisez les correctifs suivants pour corriger le blocage d'Outlook lors de l'insertion d'hyperliens : Vérifiez les compléments installés Mettre à jour Outlook Désactivez temporairement votre logiciel antivirus, puis essayez de créer un nouveau profil utilisateur Réparer le programme des applications Office Désinstaller et réinstaller Office Commençons. 1] Vérifiez les compléments installés. Il se peut qu'un complément installé dans Outlook soit à l'origine du problème.

Vue.js est un framework JavaScript populaire qui permet aux développeurs de créer facilement des applications Web dynamiques et réactives. Parmi eux, il est particulièrement apprécié par les développeurs pour ses puissantes capacités de développement de composants. Le défilement infini et la disposition en cascade sont devenus l'une des fonctionnalités indispensables du développement Web moderne. Cet article vise à présenter comment utiliser Vue.js, combiné avec certaines bibliothèques tierces, pour implémenter des fonctions de défilement infini et de disposition de flux en cascade. Réaliser un défilement infini défilement infini (Infinit

Les solutions au problème selon lequel CSS ne peut pas être chargé incluent la vérification du chemin du fichier, la vérification du contenu du fichier, la suppression du cache du navigateur, la vérification des paramètres du serveur, l'utilisation des outils de développement et la vérification de la connexion réseau. Introduction détaillée : 1. Vérifiez le chemin du fichier. Tout d'abord, assurez-vous que le chemin du fichier CSS est correct. Si le fichier CSS se trouve dans une autre partie ou sous-répertoire du site Web, vous devez fournir le chemin correct. Le fichier CSS se trouve dans le répertoire racine, le chemin doit être direct. ; 2. Vérifiez le contenu du fichier, le problème peut résider dans le fichier CSS lui-même.

Comment créer une liste d'actualités à défilement infini en utilisant HTML, CSS et jQuery Dans le développement Web, le défilement infini est une technologie d'interaction courante, particulièrement adaptée aux pages telles que les listes d'actualités qui doivent charger une grande quantité de données. Cet article expliquera comment utiliser HTML, CSS et jQuery pour implémenter une liste d'actualités à défilement infini et fournira des exemples de code spécifiques. Tout d’abord, nous avons besoin d’une structure HTML de base pour afficher la liste des actualités. Voici un exemple simple : <!DOCTYPE

Comment optimiser les performances des applications grâce au défilement infini de la liste virtuelle de Vue Alors que la complexité des applications frontales continue d'augmenter, en particulier lors du traitement de grandes quantités de données, certains problèmes de performances surviennent également. À cet égard, Vue fournit un outil puissant - une liste virtuelle (VirtualList), qui peut considérablement améliorer les performances des applications lors du traitement de grandes quantités de données en rendant dynamiquement les éléments visibles dans la liste. Cet article expliquera comment utiliser la liste virtuelle de Vue pour implémenter un défilement infini et optimiser les performances des applications. Nous utiliserons un carnet d'adresses virtuel
