最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题

来源:动视网 责编:小采 时间:2020-11-27 22:06:58
文档

解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题

解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题:Vue使用swiper插件时特别是轮播元素含有动态数据时可能会出现数据为空或者白屏的问题 使用下面的方法可以解决(保证在数据请求之后再渲染页面) 页面结构 <div class=swiper-container> <div class=swiper-wrapper&
推荐度:
导读解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题:Vue使用swiper插件时特别是轮播元素含有动态数据时可能会出现数据为空或者白屏的问题 使用下面的方法可以解决(保证在数据请求之后再渲染页面) 页面结构 <div class=swiper-container> <div class=swiper-wrapper&


Vue使用swiper插件时特别是轮播元素含有动态数据时可能会出现数据为空或者白屏的问题

使用下面的方法可以解决(保证在数据请求之后再渲染页面)

页面结构

<div class="swiper-container">
 <div class="swiper-wrapper">
 <div class="swiper-slide tpOne" v-if="topInfo">
 <-- 此处为绑定数据的轮播元素 -->
 <div class="bannerBox1">
 <div class="l_label" >{{topInfo.label}}</div>
 <div class="l_title" >{{topInfo.title}}</div>
 <div class="l_tips" >{{topInfo.tips}}</div>
 <div class="l_bottom"><span><img src="..." "></span>{{topInfo.bottom}}</div>
 </div>
 </div>
 <div class="swiper-slide"><img src="" " /></div>
 <div class="swiper-slide"><img src="" " /></div>
 <div class="swiper-slide"><img src="" " /></div>
 </div>
 <div class="swiper-pagination"></div>
</div>

初始化方法

//mounted 或者topInfo的值获取到时再调用初始化方法
swiperInit() {
 var mySwiper = new Swiper('.swiper-container', {
 pagination : '.swiper-pagination',
 paginationType : 'bullets',
 autoplay : 2000,
 // loop : true,
 })
},

获取数据

getInfo:function(){
 var _this=this;
 XXX.ajax({
 url: '...',
 success: (r)=> {
 if(!!r.ret){
 _this.topInfo=r.ret;
 //此时获取到数据再显示Swiper
 _this.getFlag=1;
 }
 }
 })
 },

下面再提供一个例子

页面结构

<div class="swBox" v-if="sw_flag&&!!banners.length">
 <div class="swiper-container">
 <div class="swiper-wrapper">
 <div class="swiper-slide" v-for="(banner,index) in banners" :key="index" @click="toNextUrl(banner,index)">
 <img :src="banner.image" " />
 </div>
 </div>
 <div class="swiper-pagination"></div>
 </div>
</div>

初始化方法

swiperInit() {
 var mySwiper = new Swiper('.swiper-container', {
 pagination : '.swiper-pagination',
 paginationType : 'bullets',
 autoplay : 2000,
 observer:true,
 observeParents:false
 })
 },

获取数据

getData:function(){
 var _this=this;
 //此处设置sw_flag变量的目的在于控制swiper显示关闭开关,当数据重新请求时,先关闭swiper,请求完毕数据再重新渲染页面;
 _this.sw_flag=0;
 XXX.ajax({
 url: '...',
 success: (r)=> {
 if(!!r.ret){
 _this.banners=r.ret.banners||"";
 _this.sw_flag=1;
 //此时获取到数据再初始化swiper
 _this.$nextTick(function(){
 if(!!_this.banners.length){
 _this.swiperInit();
 }
 });
 }
 }
 })
},

注:我用的swiper版本是 3.4.2

以上这篇解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

文档

解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题

解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题:Vue使用swiper插件时特别是轮播元素含有动态数据时可能会出现数据为空或者白屏的问题 使用下面的方法可以解决(保证在数据请求之后再渲染页面) 页面结构 <div class=swiper-container> <div class=swiper-wrapper&
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top