vue使用swiper5

740 阅读1分钟

安装

npm install swiper@5

安装完成

"swiper": "^5.4.5"

引用

// js
import Swiper from "swiper";
// css
import "swiper/css/swiper.min.css";

html

<div class="swiper-container">
	<div class="swiper-wrapper">
		<div class="swiper-slide list-item" 
			v-for="(item, index) in list"
			:key="index"
		>
			<div class="item-img"><img :src="item.img" /></div>
			<div class="item-title">{{ item.name }}</div>
		</div>
	</div>
</div>

js

//导入js
import Swiper from "swiper";
//引入css
import "swiper/css/swiper.min.css";

export default {
  data() {
    return {
      list: [],
    };
  },
  mounted() {
    this.getList();
  },
  methods: {
    getList() {
      this.list = [
        {
          id: 1,
          name: "标题1",
          img: require("@/assets/1.jpg"),
        },
        {
          id: 1,
          name: "标题2",
          img: require("@/assets/1.jpg"),
        },
        {
          id: 1,
          name: "标题3",
          img: require("@/assets/1.jpg"),
        },
        {
          id: 1,
          name: "标题4",
          img: require("@/assets/1.jpg"),
        },
        {
          id: 1,
          name: "标题5",
          img: require("@/assets/1.jpg"),
        },
      ];
      this.$nextTick(function () {
        new Swiper(".swiper-container", {
          loop: true, // 循环模式选项
          slidesPerView: 4,
          autoplay: true,
          spaceBetween: 10,
        });
      });
    },
  },
};

完整代码

<template>
  <div>
    <div class="swiper-container">
      <div class="swiper-wrapper">
        <div
          class="swiper-slide list-item"
          v-for="(item, index) in list"
          :key="index"
        >
          <div class="item-img"><img :src="item.img" /></div>
          <div class="item-title">{{ item.name }}</div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
//导入js
import Swiper from "swiper";
//引入css
import "swiper/css/swiper.min.css";

export default {
  data() {
    return {
      list: [],
    };
  },
  mounted() {
    this.getList();
  },
  methods: {
    getList() {
      this.list = [
        {
          id: 1,
          name: "标题1",
          img: require("@/assets/1.jpg"),
        },
        {
          id: 1,
          name: "标题2",
          img: require("@/assets/1.jpg"),
        },
        {
          id: 1,
          name: "标题3",
          img: require("@/assets/1.jpg"),
        },
        {
          id: 1,
          name: "标题4",
          img: require("@/assets/1.jpg"),
        },
        {
          id: 1,
          name: "标题5",
          img: require("@/assets/1.jpg"),
        },
      ];
      this.$nextTick(function () {
        new Swiper(".swiper-container", {
          loop: true, // 循环模式选项
          slidesPerView: 4,
          autoplay: true,
          spaceBetween: 10,
        });
      });
    },
  },
};
</script>

<style>
.item-img {
  width: 100%;
  height: 200px;
}
.item-img img {
  width: 100%;
  height: 100%;
}
.item-title {
  text-align: center;
  margin-top: 20px;
  font-size: 20px;
}
</style>