vue项目中,如何使用swiper

891 阅读1分钟

swiper在vue项目中的使用频率是非常高的,那么swiper在vue项目中改如何使用呢?

1.安装(建议下载5版本的)

npm install --save swiper@5

2.在项目的入口文件中引入(main.js)

import Swiper from 'swiper'
import 'swiper/css/swiper.css'  //样式也需要引入

3.实例化swiper

  var mySwiper = new Swiper('.swiper-container', {
            loop: true,
            autoplay: 500,
           
          });

重点!!! 重点!!! 重点!!! 重点!!!

我们通常都会在mounted中实例化swiper,但是这样写完后发现swiper并没有生效,因为我们swipe的数据也是在mounted中的,swiper如果也放在Mounted中,这是数据还没有加载完毕(因为请求数据是异步的),所以swiper动画并不生效,这时我们应该如下操作:

 watch: {
    bannerList: {
      handler (newval, oldval) {
        this.$nextTick(() => {
          var mySwiper = new Swiper('.swiper-container', {
            loop: true,
            autoplay: 500,
            // 如果需要分页器
            pagination: {
              el: '.swiper-pagination',
            },

            // 如果需要前进后退按钮
            navigation: {
              nextEl: '.swiper-button-next',
              prevEl: '.swiper-button-prev',
            },
          });
        })
      }
    }
  }

我们应该首先监听渲染轮播图的数据是否加载完毕,那为什么还要使用this.$nextTick()? 因为我们使用v-for渲染数据的时候也需要时间,

而 将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。

所以使用 this.$nextTick() 等数据循环完毕再加动画