Maison >interface Web >Voir.js >Comment utiliser le composant Suspense dans Vue 3 pour obtenir des effets de transition de chargement de données

Comment utiliser le composant Suspense dans Vue 3 pour obtenir des effets de transition de chargement de données

PHPz
PHPzoriginal
2023-09-09 10:28:521111parcourir

如何利用Vue 3中的Suspense组件实现数据加载过渡效果

Comment utiliser le composant Suspense dans Vue 3 pour obtenir des effets de transition de chargement de données

Introduction :
À mesure que la complexité des applications Web augmente, les effets de transition de chargement de données sont devenus une exigence importante en matière d'expérience utilisateur. Vue 3 a apporté de nouvelles améliorations dans ce domaine et a introduit le composant Suspense pour résoudre ce problème. Cet article expliquera comment utiliser le composant Suspense dans Vue 3 pour obtenir des effets de transition de chargement de données et joindra des exemples de code correspondants.

  1. Présentation du composant Suspense
    Le composant Suspense dans Vue 3 a été introduit pour résoudre le problème de l'affichage de l'état de chargement des données pendant le processus de chargement des composants asynchrones. Nous pouvons envelopper le composant asynchrone en utilisant le composant Suspense dans le modèle et afficher un état de chargement avant que le composant asynchrone ne soit chargé.
<template>
  <Suspense>
    <template #default>
      <AsyncComponent/>
    </template>
    <template #fallback>
      <loading-component/>
    </template>
  </Suspense>
</template>
  1. Définir des composants asynchrones
    Les composants asynchrones peuvent être chargés dynamiquement via la fonction d'importation, et Vue les convertira automatiquement en composants asynchrones. Nous pouvons afficher un état de chargement pendant le processus de chargement d'un composant asynchrone jusqu'à ce que le composant soit chargé.
const AsyncComponent = defineAsyncComponent(
  () => import('./AsyncComponent.vue'),
  {
    loadingComponent: loadingComponent,
    errorComponent: errorComponent,
    delay: 200, // 延迟200毫秒显示loading状态
    timeout: 3000 // 3秒超时时间
  }
);
  1. Composant d'état de chargement personnalisé
    loadingComponent et errorComponent sont nos composants personnalisés, qui représentent respectivement l'état du chargement des données et l'échec du chargement. Nous pouvons personnaliser les effets d'affichage de ces deux composants en fonction des besoins réels. Voici un exemple de code pour chargerComponent :
<template>
  <div class="loading">数据加载中...</div>
</template>

<script>
export default {
  name: 'loadingComponent'
}
</script>

<style scoped>
.loading {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100px;
  background-color: #f5f5f5;
}
</style>
  1. Affichage après le chargement du composant
    Lorsque le composant est chargé, nous pouvons afficher les données dans le composant asynchrone. À ce stade, Vue remplacera automatiquement le contenu du modèle de secours du composant Suspense par le contenu du composant asynchrone.
<template>
  <div>
    <h1>{{title}}</h1>
    <p>{{content}}</p>
  </div>
</template>

<script>
export default {
  name: 'AsyncComponent',
  data() {
    return {
      title: '',
      content: ''
    }
  },
  created() {
    fetch('/api/data')
      .then(response => response.json())
      .then(data => {
        this.title = data.title;
        this.content = data.content;
      })
      .catch(error => {
        console.error(error);
      });
  }
}
</script>
  1. Exemple de code complet
    Ce qui suit est un exemple de code complet qui montre comment utiliser le composant Suspense dans Vue 3 pour obtenir l'effet de transition de chargement de données.
<template>
  <Suspense>
    <template #default>
      <AsyncComponent/>
    </template>
    <template #fallback>
      <loading-component/>
    </template>
  </Suspense>
</template>

<script>
import { defineAsyncComponent, Suspense } from 'vue';
import AsyncComponent from './AsyncComponent.vue';
import LoadingComponent from './LoadingComponent.vue';

export default {
  name: 'App',
  components: {
    AsyncComponent,
    LoadingComponent
  }
}
</script>

Conclusion :
Le composant Suspense dans Vue 3 nous facilite la mise en œuvre des effets de transition de chargement de données. En introduisant le composant Suspense, en définissant des composants asynchrones et des composants d'état de chargement personnalisés, nous pouvons facilement obtenir l'effet de transition du chargement des données et améliorer l'expérience utilisateur. J'espère que cet article vous sera utile, merci d'avoir lu !

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:
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