Table des matières
Infinite List
Maison interface Web Voir.js Comment utiliser Vue pour obtenir des effets de chargement infinis

Comment utiliser Vue pour obtenir des effets de chargement infinis

Sep 19, 2023 pm 05:00 PM
vue 特效 无限加载

Comment utiliser Vue pour obtenir des effets de chargement infinis

Comment utiliser Vue pour obtenir des effets de chargement infinis

L'effet de chargement infini est un effet d'interaction de page Web courant qui charge automatiquement plus de contenu lorsque l'utilisateur fait défiler la page vers le bas. Dans Vue, nous pouvons utiliser les instructions et les fonctions de hook de cycle de vie qu'il fournit pour obtenir cet effet spécial. Cet article expliquera comment utiliser Vue pour obtenir des effets de chargement infinis et fournira des exemples de code spécifiques.

Étape 1 : Initialisation du projet

Tout d'abord, installez Vue et les dépendances correspondantes dans le projet Vue. Exécutez la commande suivante dans le terminal pour installer :

npm install vue
Copier après la connexion

Étape 2 : Créer un composant Vue

Ensuite, nous devons créer un composant pour rendre la liste et gérer la logique de chargement infinie.

Tout d'abord, créez un nouveau composant (par exemple, InfiniteList) dans votre projet Vue.

<template>
  <div>
    <ul>
      <li v-for="item in items" :key="item">{{ item }}</li>
      <li ref="sentinel"></li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [],
      page: 1,
      isLoading: false
    };
  },
  mounted() {
    window.addEventListener('scroll', this.handleScroll);
    this.loadData();
  },
  methods: {
    loadData() {
      this.isLoading = true;
      // 模拟异步加载数据
      setTimeout(() => {
        for (let i = 0; i < 10; i++) {
          this.items.push(`Item ${this.items.length + 1}`);
        }
        this.isLoading = false;
      }, 1000);
    },
    handleScroll() {
      const sentinel = this.$refs.sentinel;
      if (sentinel.getBoundingClientRect().top <= window.innerHeight) {
        this.page++;
        this.loadData();
      }
    }
  },
  destroyed() {
    window.removeEventListener('scroll', this.handleScroll);
  }
};
</script>
Copier après la connexion

Dans le code ci-dessus, nous définissons un élément de données items, qui est utilisé pour stocker la liste de contenu chargée ; page est utilisée pour enregistrer le nombre de pages actuellement chargées ; ; isLoading est utilisé pour marquer si les données sont en cours de chargement. items,用于存储加载的内容列表;page用于记录当前加载的页数;isLoading用于标记当前是否正在加载数据。

我们在组件的mounted钩子函数中,监听了window对象的scroll事件,并在初始化时调用了loadData方法用于加载初始数据。

loadData方法模拟一个异步加载数据的过程。当数据加载完成后,我们使用for循环将新加载的数据添加到items数组中,并设置isLoadingfalse表示加载完成。

handleScroll方法用于处理滚动事件。我们通过获取sentinel元素的位置信息,判断是否滚动到页面底部,当滚动到底部时,调用loadData方法加载更多数据。

最后,在组件的destroyed钩子函数中,我们移除了对scroll

Dans la fonction hook Mounted du composant, nous avons écouté l'événement scroll de l'objet window et appelé loadData lors de l'initialisation La méthode est utilisée pour charger les données initiales.

La méthode loadData simule un processus de chargement de données asynchrone. Lorsque les données sont chargées, nous utilisons une boucle for pour ajouter les données nouvellement chargées au tableau items et définissons isLoading sur false signifie que le chargement est terminé.

La méthode handleScroll est utilisée pour gérer les événements de défilement. Nous déterminons s'il faut faire défiler vers le bas de la page en obtenant les informations de position de l'élément sentinel Lors du défilement vers le bas, appelez la méthode loadData pour charger plus de données.

Enfin, dans la fonction hook destroyed du composant, nous avons supprimé la surveillance de l'événement scroll pour éviter les fuites de mémoire après la destruction du composant.

Étape 3 : Utiliser les composants

Dans le composant principal de votre projet Vue (tel que App.vue), introduisez et utilisez le composant InfiniteList que vous venez de créer.

<template>
  <div>
    <h1 id="Infinite-List">Infinite List</h1>
    <InfiniteList></InfiniteList>
  </div>
</template>

<script>
import InfiniteList from './components/InfiniteList.vue';

export default {
  components: {
    InfiniteList
  }
};
</script>
Copier après la connexion
Étape 4 : Style

Enfin, nous devons styliser la liste pour montrer l'effet des effets de chargement infinis. Vous pouvez le personnaliser à votre guise pour mieux répondre aux besoins de votre projet. 🎜🎜L'exemple de code ci-dessus ne fournit que les fonctions de rendu de liste et de chargement par défilement les plus basiques, et vous pouvez l'étendre en fonction de vos besoins réels. Par exemple, vous pouvez ajouter des effets d'animation de chargement, ajouter une actualisation déroulante et d'autres fonctions. 🎜🎜Grâce aux étapes ci-dessus, vous avez réussi à implémenter des effets de chargement infinis dans votre projet Vue. Lorsque les utilisateurs font défiler vers le bas de la page, davantage de contenu est automatiquement chargé, améliorant ainsi l'expérience utilisateur. 🎜🎜J'espère que cet article vous aidera à comprendre comment utiliser Vue pour obtenir des effets de chargement infinis. Si vous rencontrez des questions, n'hésitez pas à nous les poser ! 🎜

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment ajouter des fonctions aux boutons pour Vue Comment ajouter des fonctions aux boutons pour Vue Apr 08, 2025 am 08:51 AM

Vous pouvez ajouter une fonction au bouton VUE en liant le bouton dans le modèle HTML à une méthode. Définissez la logique de la fonction de méthode et d'écriture dans l'instance Vue.

Comment utiliser Bootstrap en Vue Comment utiliser Bootstrap en Vue Apr 07, 2025 pm 11:33 PM

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Comment référencer le fichier JS avec Vue.js Comment référencer le fichier JS avec Vue.js Apr 07, 2025 pm 11:27 PM

Il existe trois façons de se référer aux fichiers JS dans Vue.js: spécifiez directement le chemin à l'aide du & lt; script & gt; étiqueter;; importation dynamique à l'aide du crochet de cycle de vie monté (); et l'importation via la bibliothèque de gestion de l'État Vuex.

Comment utiliser Watch in Vue Comment utiliser Watch in Vue Apr 07, 2025 pm 11:36 PM

L'option Watch dans Vue.js permet aux développeurs d'écouter des modifications de données spécifiques. Lorsque les données changent, regardez déclenche une fonction de rappel pour effectuer des vues de mise à jour ou d'autres tâches. Ses options de configuration incluent immédiatement, qui spécifie s'il faut exécuter un rappel immédiatement, et profond, ce qui spécifie s'il faut écouter récursivement les modifications des objets ou des tableaux.

Que signifie le développement de plusieurs pages Vue? Que signifie le développement de plusieurs pages Vue? Apr 07, 2025 pm 11:57 PM

Le développement multi-pages VUE est un moyen de créer des applications à l'aide du cadre Vue.js, où l'application est divisée en pages distinctes: Maintenance du code: La division de l'application en plusieurs pages peut rendre le code plus facile à gérer et à maintenir. Modularité: chaque page peut être utilisée comme module séparé pour une réutilisation et un remplacement faciles. Routage simple: la navigation entre les pages peut être gérée par une configuration de routage simple. Optimisation du référencement: chaque page a sa propre URL, ce qui aide le référencement.

Comment revenir à la page précédente par Vue Comment revenir à la page précédente par Vue Apr 07, 2025 pm 11:30 PM

Vue.js dispose de quatre méthodes pour revenir à la page précédente: $ router.go (-1) $ router.back () utilise & lt; router-link to = & quot; / & quot; Composant Window.History.back (), et la sélection de la méthode dépend de la scène.

Comment interroger la version de Vue Comment interroger la version de Vue Apr 07, 2025 pm 11:24 PM

Vous pouvez interroger la version Vue en utilisant Vue Devtools pour afficher l'onglet Vue dans la console du navigateur. Utilisez NPM pour exécuter la commande "NPM List -g Vue". Recherchez l'élément VUE dans l'objet "dépendances" du fichier package.json. Pour les projets Vue CLI, exécutez la commande "Vue --version". Vérifiez les informations de la version dans le & lt; script & gt; Tag dans le fichier html qui fait référence au fichier VUE.

Comment utiliser la fonction interception vue Comment utiliser la fonction interception vue Apr 08, 2025 am 06:51 AM

L'interception de la fonction dans Vue est une technique utilisée pour limiter le nombre de fois qu'une fonction est appelée dans une période de temps spécifiée et prévenir les problèmes de performance. La méthode d'implémentation est: Importer la bibliothèque Lodash: import {Debounce} de 'Lodash'; Utilisez la fonction Debounce pour créer une fonction d'interception: const debouncedFunction = Debounce (() = & gt; {/ logical /}, 500); Appelez la fonction d'interception et la fonction de contrôle est appelée au plus une fois en 500 millisecondes.

See all articles