Maison > interface Web > js tutoriel > le corps du texte

Comment importer le plugin swiper dans vue ?

亚连
Libérer: 2018-06-08 17:36:41
original
1750 Les gens l'ont consulté

Cet article présente principalement la méthode d'importation du plug-in swiper dans le projet vue. Je vais maintenant le partager avec vous et vous donner une référence.

Sélection de version

Swiper est un plug-in couramment utilisé, et il a maintenant été itéré jusqu'à la quatrième génération : swiper4.

Les versions couramment utilisées sont swiper3 et swiper4. J'ai choisi swiper3.

Installation

Installez la dernière version 3.4.2 de swiper3 :

npm i swiper@3.4.2 -S
Copier après la connexion

Voici un peu de connaissances, vérifiez tous les numéros de version du Méthode du package node :

npm view 包名 versions
Copier après la connexion

Écriture des composants

La méthode officielle d'utilisation de swiper est divisée en 4 processus :

  1. Chargement du plug-in

  2. Contenu HTML

  3. Définir une taille pour Swiper

  4. Initialiser Swiper

Je suis également ce processus pour écrire des composants :

Charger le plug-in

import Swiper from 'swiper';
import 'swiper/dist/css/swiper.min.css';
Copier après la connexion

Contenu HTML

<template>
  <p class="swiper-container">
    <p class="swiper-wrapper">
      <p class="swiper-slide">Slide 1</p>
      <p class="swiper-slide">Slide 2</p>
      <p class="swiper-slide">Slide 3</p>
    </p>
    <!-- 如果需要分页器 -->
    <p class="swiper-pagination"></p>
    <!-- 如果需要导航按钮 -->
    <p class="swiper-button-prev"></p>
    <p class="swiper-button-next"></p>
    <!-- 如果需要滚动条 -->
    <p class="swiper-scrollbar"></p>
  </p>
</template>
Copier après la connexion

Définir une taille pour Swiper

.swiper-container {
  width: 600px;
  height: 300px;
}
Copier après la connexion

Initialiser Swiper

Parce que Swiper ne peut pas être initialisé tant que le rendu dom n'est pas terminé, il doit l'être. L'initialisation est placée dans la fonction hook du cycle de vie montée de vue :

mounted(): {
  /* eslint-disable no-new */
  new Swiper(&#39;.swiper-container&#39;, {})
}
Copier après la connexion

/* eslint-disable no-new */ dans le code ci-dessus est le projet qui permet la détection du code eslint et peut être utilisé, si eslint n'est pas utilisé. Vous pouvez utiliser le code suivant :

mounted(): {
  var mySwiper = new Swiper(&#39;.swiper-container&#39;, {})
}
Copier après la connexion

Complet

Combinez les codes ci-dessus :

<template>
  <p class="swiper-container">
    <p class="swiper-wrapper">
      <p class="swiper-slide">Slide 1</p>
      <p class="swiper-slide">Slide 2</p>
      <p class="swiper-slide">Slide 3</p>
    </p>
    <!-- 如果需要分页器 -->
    <p class="swiper-pagination"></p>
    <!-- 如果需要导航按钮 -->
    <p class="swiper-button-prev"></p>
    <p class="swiper-button-next"></p>
    <!-- 如果需要滚动条 -->
    <p class="swiper-scrollbar"></p>
  </p>
</template>

<script>
import Swiper from &amp;#39;swiper&amp;#39;;
import &amp;#39;swiper/dist/css/swiper.min.css&amp;#39;;
export default {
  mounted(): {
    var mySwiper = new Swiper(&#39;.swiper-container&#39;, {})
  }
}
</script>

Copier après la connexion

Cours, vous pouvez voir que la roue peut être réalisée L'effet de diffusion d'images. Mais jusqu’à présent, seul l’effet carrousel a été obtenu et les données n’ont pas été restituées.

Rendu des données

Dans les projets réels, le plug-in swiper est souvent utilisé pour obtenir l'effet de graphiques de bannière (version mobile Sina) :

Acquisition de données

J'utilise le plug-in ajax axios couramment utilisé dans les projets vue à titre d'exemple :

axios
 .get(&#39;/user?ID=12345&#39;)
 .then(function (response) {
  this.imgList = response;
 })
 .catch(function (error) {
  console.log(error);
 });
Copier après la connexion

La structure de données qui obtiendra les données est spécifiée Pour :

[
  "https://www.baidu.com/img/baidu_jgylogo3.gif",
  "https://www.baidu.com/img/baidu_jgylogo3.gif",
  "https://www.baidu.com/img/baidu_jgylogo3.gif",
  "https://www.baidu.com/img/baidu_jgylogo3.gif",
  "https://www.baidu.com/img/baidu_jgylogo3.gif"
]
Copier après la connexion

Rendu de liste

<template>
  <p class="swiper-container">
    <p class="swiper-wrapper">
      <p class="swiper-slide" v-for="item in imgList" :style="{backgroundImage: &#39;url(&#39; + item + &#39;)&#39;}"></p>
    </p>
    <!-- 如果需要分页器 -->
    <p class="swiper-pagination"></p>
    <!-- 如果需要导航按钮 -->
    <p class="swiper-button-prev"></p>
    <p class="swiper-button-next"></p>
    <!-- 如果需要滚动条 -->
    <p class="swiper-scrollbar"></p>
  </p>
</template>

<style>
.swiper-slide {
  width: 100%;
  height: 400px;
}
<style>
Copier après la connexion

Jusqu'à présent, le rendu des données est terminé, mais en regardant l'effet réel, il semble que la bannière ne puisse pas obtenir l'effet de l'image carrousel. L'image est uniquement rendue ici, mais l'image du carrousel est rendue et n'a pas été initialisée. Parce que l'initialisation est terminée lorsque le cycle de vie est monté.

Initialisation

Ainsi, une fois les données obtenues et le DOM mis à jour, le swiper doit être réinitialisé.

axios
 .get(&#39;/user?ID=12345&#39;)
 .then(function (response) {
  // 获取数据更新
  this.imgList = response;
  // DOM还没有更新
  this.$nextTick(() => {
    // DOM更新了
    // swiper重新初始化
    /* eslint-disable no-new */
    new Swiper(&#39;.swiper-container&#39;, {})
  })
 })
 .catch(function (error) {
  console.log(error);
 });
Copier après la connexion

À ce stade, l'effet de l'image carrousel est réalisé.

Résumé

Swiper est un plug-in couramment utilisé, mais de nombreux problèmes sont rencontrés lors de l'importation de swiper dans un projet vue. Le principal problème est de comprendre le cycle de vie de vue afin de pouvoir utiliser efficacement les différents plug-ins js.

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles associés :

Utiliser Vue pour implémenter les principes sous-jacents (tutoriel détaillé)

Comment faire glisser et récupérer des fichiers de contrôle dans js Fonction glisser-déposer de contenu

Interprétation détaillée du motif de conception décorative en js

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!

Étiquettes associées:
vue
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!