一、swiper插件从后台获取数据没问题,css代码也没问题,但是图片不动,应该怎么解决?
实质:vue的生命周期,vue其实是提前 初始化,但是数据还没从后台给我们返回过来。
- 主要原因是swiper提前初始化,这个时候数据还没有完全出来
- 解决方式:一个是从vue,一个是从swiper
- vue中的nectTick()用于解决dom的先后执行问题
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img src='http://temp.im/640x320'/>//使用它去占位
</div>
<div class="swiper-slide">
<img src='http://temp.im/640x320'/>//使用它去占位
</div>
<div class="swiper-slide">
<img src='http://temp.im/640x320'/>//使用它去占位
</div>
</div>
</div>
在.vue组件中
<script>
import Swiper from 'swiper'
import 'css/swiper.css'
export default{
mounted(){
this.$nextTick(function(){
var mySwiper = new Swiper('.swiper-container',
direction: 'vertical', // 垂直切换选项
loop: true, // 循环模式选项
autoplay:true,//自动轮播
observer:true,//解决swiper执行的先后数据,初始化先执行了
});
})
}
}
</script>