Maison interface Web Voir.js Comment implémenter le composant carrousel à l'aide de Vue ?

Comment implémenter le composant carrousel à l'aide de Vue ?

Jun 25, 2023 am 09:13 AM
vue 组件 轮播图

Avec la popularité des appareils mobiles, les composants de carrousel sont devenus un élément indispensable de nombreux projets front-end. Dans cet article, nous présenterons étape par étape comment implémenter un composant carrousel simple à l'aide de Vue.

  1. Initialisez le projet Vue

Utilisez Vue-cli pour initialiser un nouveau projet Vue et installer les bibliothèques dépendantes :

vue create slideshow
cd slideshow
npm install --save vue-router vue-awesome-swiper
Copier après la connexion

Parmi elles, vue-router est la bibliothèque de routage officiellement fournie par Vue , vue-awesome-swiper est un plug-in Swiper encapsulé dans Vue. vue-router 是 Vue 官方提供的路由库,vue-awesome-swiper 是一个 Vue 封装的 Swiper 插件。

  1. 创建轮播图组件

src 目录下创建一个名为 components 的文件夹,在其中创建名为 Slideshow.vue 的组件文件:

<template>
  <div class="swiper-container">
    <div class="swiper-wrapper">
      <div class="swiper-slide" v-for="item in list" :key="item.id">
        <img :src="item.src" alt="item.title" />
      </div>
    </div>
    <div class="swiper-pagination"></div>
    <div class="swiper-button-next"></div>
    <div class="swiper-button-prev"></div>
  </div>
</template>

<script>
import Swiper from 'vue-awesome-swiper';
import 'swiper/css/swiper.css';

export default {
  name: 'Slideshow',
  props: {
    list: {
      type: Array,
      default: () => [],
    },
  },
  components: {
    Swiper,
  },
  mounted() {
    this.initSwiper();
  },
  methods: {
    initSwiper() {
      new Swiper('.swiper-container', {
        loop: true,
        autoplay: {
          disableOnInteraction: false,
          delay: 3000,
        },
        pagination: {
          el: '.swiper-pagination',
          clickable: true,
        },
        navigation: {
          nextEl: '.swiper-button-next',
          prevEl: '.swiper-button-prev',
        },
      });
    },
  },
};
</script>

<style lang="scss">
.swiper-container {
  width: 100%;
  height: 100%;
  .swiper-pagination {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
  }
  .swiper-button-next,
  .swiper-button-prev {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    cursor: pointer;
    z-index: 20;
    background-color: rgba(0, 0, 0, 0.3);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .swiper-button-next:hover,
  .swiper-button-prev:hover {
    background-color: rgba(0, 0, 0, 0.6);
  }
  .swiper-button-next {
    right: 20px;
  }
  .swiper-button-prev {
    left: 20px;
  }
}
</style>
Copier après la connexion

在该组件中,我们使用了 vue-awesome-swiper 插件来实现轮播图效果。在 props 中定义了 list 属性,用于接收轮播图数据。在 mounted 钩子中调用了 initSwiper 方法,用来初始化轮播图。

  1. 使用轮播图组件

App.vue 文件中,我们可以使用刚才创建的轮播图组件:

<template>
  <div id="app">
    <slideshow :list="slideshowList" />
  </div>
</template>

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

export default {
  name: 'App',
  components: {
    Slideshow,
  },
  data() {
    return {
      slideshowList: [
        { id: 1, src: require('./assets/slideshow1.jpg'), title: '轮播图1' },
        { id: 2, src: require('./assets/slideshow2.jpg'), title: '轮播图2' },
        { id: 3, src: require('./assets/slideshow3.jpg'), title: '轮播图3' },
      ],
    };
  },
};
</script>

<style>
#app {
  text-align: center;
}
</style>
Copier après la connexion

data 中定义了一个数组 slideshowList,用来存放轮播图的数据。在模板中,我们使用自定义标签 slideshow 来引用轮播图组件,并将 slideshowList

    Créez un composant carrousel

    🎜Créez un dossier nommé components dans le répertoire src et créez un dossier nommé Component file of Slideshow.vue : 🎜rrreee🎜Dans ce composant, nous utilisons le plug-in vue-awesome-swiper pour obtenir l'effet carrousel. L'attribut list est défini dans props et est utilisé pour recevoir les données d'image du carrousel. La méthode initSwiper est appelée dans le hook Mounted pour initialiser l'image du carrousel. 🎜
      🎜Utilisez le composant carrousel🎜🎜🎜Dans le fichier App.vue, nous pouvons utiliser le composant carrousel que nous venons de créer : 🎜rrreee🎜Dans Un tableau <code>slideshowList est défini dans data pour stocker les données de l'image du carrousel. Dans le modèle, nous utilisons la balise personnalisée slideshow pour référencer le composant carrousel et transmettre slideshowList au composant. 🎜🎜À ce stade, nous avons implémenté avec succès un composant carrousel en utilisant Vue. À travers cet exemple, nous pouvons voir les idées de composantisation de Vue et l'utilisation de l'injection de dépendances, ainsi que la façon d'utiliser des plug-ins tiers pour obtenir des effets complexes. En implémentant nous-mêmes le composant carrousel, nous pouvons également avoir une compréhension plus approfondie du cycle de vie et des hooks de Vue. 🎜

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.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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)

Pourquoi n'y a-t-il pas d'informations sur la demande de page sur le réseau de console après le saut Vue-Router? Pourquoi n'y a-t-il pas d'informations sur la demande de page sur le réseau de console après le saut Vue-Router? Apr 04, 2025 pm 05:27 PM

Pourquoi n'y a-t-il pas d'informations sur la demande de page sur le réseau de console après le saut Vue-Router? Lorsque vous utilisez Vue-Router pour la redirection de page, vous remarquerez peut-être un ...

Comment utiliser Vue pour implémenter des formulaires de citation électronique avec un en-tête unique et multi-corps? Comment utiliser Vue pour implémenter des formulaires de citation électronique avec un en-tête unique et multi-corps? Apr 04, 2025 pm 11:39 PM

Comment mettre en œuvre des formulaires de citation électronique avec un en-tête unique et multi-corps en Vue. Dans la gestion de l'entreprise moderne, le traitement électronique des formulaires de citation consiste à améliorer l'efficacité et ...

Comment implémenter la fonction de téléchargement de photos des photographes élevés de différentes marques à l'avant? Comment implémenter la fonction de téléchargement de photos des photographes élevés de différentes marques à l'avant? Apr 04, 2025 pm 05:42 PM

Comment implémenter la fonction de téléchargement de photos de différentes marques de photographes élevés sur le frontal Lors du développement de projets frontaux, vous rencontrez souvent la nécessité d'intégrer des équipements matériels. pour...

Comment réaliser l'effet de segmentation avec une bordure de courbe de 45 degrés? Comment réaliser l'effet de segmentation avec une bordure de courbe de 45 degrés? Apr 04, 2025 pm 11:48 PM

Conseils pour implémenter les effets des segments dans la conception de l'interface utilisateur, le segmenter est un élément de navigation commun, en particulier dans les applications mobiles et les pages Web réactives. ...

Comment utiliser EL-Table pour implémenter le groupe de table, glisser et déposer le tri dans Vue2? Comment utiliser EL-Table pour implémenter le groupe de table, glisser et déposer le tri dans Vue2? Apr 04, 2025 pm 07:54 PM

Implémentation du tri et du tri de groupe de table EL-Table Tri dans Vue2. L'utilisation de tables El-Table pour implémenter le tri et le tri de groupe dans VUE2 est une exigence commune. Supposons que nous ayons un ...

Comment s'assurer que le bas d'un objet 3D est fixé sur la carte à l'aide de Mapbox et Three.js dans Vue? Comment s'assurer que le bas d'un objet 3D est fixé sur la carte à l'aide de Mapbox et Three.js dans Vue? Apr 04, 2025 pm 06:42 PM

Comment utiliser Mapbox et Three.js dans Vue pour adapter des objets tridimensionnels pour cartographier les angles de visualisation. Lorsque vous utilisez VUE pour combiner Mapbox et Three.js, les objets tridimensionnels créés doivent ...

Les spécifications de dénomination JavaScript soulèvent-elles des problèmes de compatibilité dans Android WebView? Les spécifications de dénomination JavaScript soulèvent-elles des problèmes de compatibilité dans Android WebView? Apr 04, 2025 pm 07:15 PM

Spécification de dénomination JavaScript et Android ...

See all articles