有关vue+swiper动态改变数据,slide并不会改变的问题

最近在公司写活动页面时,要求点击四种商品目录,下面呈现不同的商品进行轮播。在这里我并没有创建四个swiper,而是在一个swiper里通过动态的更改data来实现功能。
html代码

<swiper class="draw-swiper" :options="swiperOption" ref="goodSwiper" v-if="goodVisibility">
            <swiper-slide v-for="(item,index) in goodList[isIndex]" :key="item.title">
              <div class="item">
                <div>
                  <img :src="item.img" alt="">
                  <span class="sp" v-html="item.mess"></span>
                </div>
                <span>{{item.title}}</span>
              </div>
            </swiper-slide>
 </swiper>

简单讲解下就是商品数据放在goodList里,通过点击四种商品目录,更改isIndex的值,来实现动态更改goodList对应的数值
但是,问题出现了,虽然我成功的改变了轮播的商品,不过因为我在swiperOption里设置了loop为true,导致轮播一轮后面的数据一直为goodList[isIndex]的数据
最后通过对swiper进行销毁重新加载的方法解决了这个问题
方法一

this.goodVisibility = false   //在html里通过v-if='goodVisibility '来控制
this.$nextTick(() => {
     this.goodVisibility = true
}

方法二

 this.$refs.goodSwiper.swiper.destroy()   //先销毁
 this.$refs.goodSwiper.mountInstance()   //后在加载
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,015评论 25 709
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,026评论 3 119
  • 朝夕茜阅读 114评论 0 2
  • 楼倚阑干缥缈间,看花拿绿只为闲。无端又起天涯念,隐隐生烟数点山。 楼上凭栏小立时,淡烟漠漠雨丝丝。年光是处有佳气,...
    倚剑白云天阅读 624评论 0 0
  • 我一直有个梦,只是从来不敢去追逐 0x00 引言 SQLMAP黑魔法电子书是异空间本着技术共享原则打造的第一期电...
    异空间安全团队阅读 1,041评论 2 0