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


Posted in Javascript onSeptember 27, 2018

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="..." alt=""></span>{{topInfo.bottom}}</div>
  </div>
 </div>
 <div class="swiper-slide"><img src="" alt="" /></div>
 <div class="swiper-slide"><img src="" alt="" /></div>
 <div class="swiper-slide"><img src="" alt="" /></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" alt="" />
  </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动态加载数据,动态轮播数据显示白屏的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Wordpress ThickBox 添加“查看原图”效果代码
Dec 11 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
Sep 21 Javascript
javascript常用功能汇总
Jul 05 Javascript
Javascript中apply、call、bind的巧妙使用
Aug 18 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
Aug 24 Javascript
ReactJs快速入门教程(精华版)
Nov 28 Javascript
微信小程序 本地数据读取实例
Apr 27 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
Aug 13 Javascript
原生JS实现自定义下拉单选选择框功能
Oct 12 Javascript
小程序实现多列选择器
Feb 15 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
Oct 24 Javascript
详解前端任务构建利器Gulp.js使用指南
Apr 30 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
Sep 27 #Javascript
如何在 JavaScript 中更好地利用数组
Sep 27 #Javascript
axios 封装上传文件的请求方法
Sep 26 #Javascript
axios取消请求的实践记录分享
Sep 26 #Javascript
Node.js模拟发起http请求从异步转同步的5种用法
Sep 26 #Javascript
在vue中获取token,并将token写进header的方法
Sep 26 #Javascript
基于axios 解决跨域cookie丢失的问题
Sep 26 #Javascript
You might like
PHP中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
深入理解PHP中mt_rand()随机数的安全
2017/10/12 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
javascript parseInt 大改造
2009/09/27 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
让你一句话理解闭包(简单易懂)
2016/06/03 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
vue获取当前激活路由的方法
2018/03/17 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
Vue全局分页组件的实现代码
2018/08/10 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
2018/12/26 Python
Python+PyQt5实现美剧爬虫可视工具的方法
2019/04/25 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
2019/11/15 Python
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
公积金转移接收函
2014/01/11 职场文书
幼儿园中班开学寄语
2014/04/03 职场文书
竞选团支书演讲稿
2014/04/28 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python