Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
807 views
in Technique[技术] by (71.8m points)

vue-awesome-swiper 懒加载图片不更新问题

swiper-lazy 图片不更新问题

当数据发生变化是,所有信息都发生变化了唯独图片还是原来的;
网上查的资料是在img 加上一个 :key="图片地址"!
结果是图片是发生变化了,但是不会加载,直接白屏给你,需要左右滑动一下才能加载出来。。。。。

<img :data-src="vo.pic" :key="vo.pic" class="swiper-lazy actor-img"   />

我自己尝试的解决方法二:

在 整个swiper组件中 使用v-if 渲染,数据更新后 跟个 this.state = false几秒后在this.state = true,图片更新和加载问题解决了!

this.state = false;
setTimeout(()=>{
 this.state = true
},100)

但是

这么一来会出现一系列未知异常,首先已知的 左右翻页按钮失效。

image.png

不知道大家有没有遇到类似的问题、如何解决!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

使用第二种办法解决了,前提是不能使用计算属性获取 swiper,这绝对是个坑,网上有很多资料都是这么写的,使用 了 v-if 后 计算属性就没法获取 ref了。
原来的代码
html

<swiper v-if="state" :auto-update="true" class="actor-list" :options="swiperOption" ref="Swiper">
  computed: {
     //计算属性
     swiper() {
      return this.$refs.Swiper.swiper;
    }
  },

搬迁到updated生命周期重新初始化就ok了


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...