Vue项目--轮播图的实现

使用swiper插件实现轮播图

1.安装 cnpm install --save swiper@5

        5版本比较稳定

2.引入swiper,在使需要使用轮播图的组件ListContainer里引入

        import Swiper from 'swiper'

   引入swiper样式,因为下面也有轮播图,所以在入口文件main.js里引入。

        import 'swiper/css/swiper.css'

3.swiper必须先把结构准备好,再新建swiper实例,才能让轮播图有轮播效果!那么新建swiper实例写在哪里就非常重要。mounted只能捕获写在组件模板中的数据渲染结束的时刻,如果写现在mounted里,由于获取轮播图数据是异步操作,此时的数据还没返回来。也就是用v-for建立的结构还没建好,轮播图出不来效果。

4.解决方法:watch+nextTick

watch能监听到bannerList数据已经从空变为有值得状态。但是数据有了,根据数据生成的DOM还没有更新。为了获取更新循环结束后的DOM,需要使用vue.$nextTick(()=>{})

// 为了在数据更新操作之后操作DOM,我们可以在数据变化之后立即使用Vue.nextTick(callback); 这样回调函数会在DOM更新完成后被调用,就可以拿到最新的DOM元素了。

watch: {
    bannerList: {
      handler(newV, oldV) {
        
        this.$nextTick(() => {
          var mySwiper = new Swiper(".swiper-container", {
            loop: true, // 循环模式选项
            // 如果需要分页器
            pagination: {
              el: ".swiper-pagination",
            },
            // 如果需要前进后退按钮
            navigation: {
              nextEl: ".swiper-button-next",
              prevEl: ".swiper-button-prev",
            },
          });
        });
      },
    },

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值