vue 使用swiper 实现轮播图效果

首先使用npm安装swiper 

npm i swiper

接着在组件模板中添加轮播的html结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div class="swiper">
    <div class="swiper-wrapper">
        <div class="swiper-slide">Slide 1</div>
        <div class="swiper-slide">Slide 2</div>
        <div class="swiper-slide">Slide 3</div>
    </div>
    <!-- 如果需要分页器 -->
    <div class="swiper-pagination"></div>
     
    <!-- 如果需要导航按钮 -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>
     
    <!-- 如果需要滚动条 -->
    <div class="swiper-scrollbar"></div>
</div>

在使用swiper的组件中引入swiper

import Swiper from 'swiper'

如果项目中多处使用轮播,则直接接着在入口文件即main.js中引入swiper样式即可

import 'swiper/css/swiper.css'

在实例化swiper对象时,必须在对应的轮播html结构全部渲染完成以后再实例化该对象
如果轮播的数据是异步请求然后通过vue渲染的话,那么要等待渲染完成再进行swiper对象实例化
一般对轮播数据进行监听,当该数据发送变化时说明数据已经获取到,此时再利用this.$nextTick方法传入回调来进行swiper对象实例化,nextTick方法的作用在于当数据发送变化时,该方法传入的回调会在页面的对应dom循环渲染完成后再执行该回调,这样就保证了swiper对象在html结构渲染结束再实例化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
watch: {
    // 监听bannerList数据的变化 由空数组变为长度为4的数组
    bannerList: {
      handler(newV, oldV) {
        this.$nextTick(() => {
          var mySwiper = new Swiper(".swiper-container", {
          loop: true, // 循环模式选项
          autoplay: true, //自动轮播
          // 如果需要分页器
          pagination: {
            el: ".swiper-pagination",
            clickable: true,
          },
          // 如果需要前进后退按钮
          navigation: {
            nextEl: ".swiper-button-next",
            prevEl: ".swiper-button-prev",
          },
        })
        })
      },
    },
  }

  

 

posted @   泡椒pg  阅读(683)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示