最近用vue重构一个移动端的项目,碰到了不少坑,今天拿移动端最著名的轮播插件swiper为例来说,由于这个项目没用UI库,纯手写的样式,沿用老的插件,自然而然的选择了vue-awesome-swiper(3.1.3)最新版,记不清上次用这个插件多久了,现在用来竟遇到很多坑,今晚闲暇以此记录,帮助大家避免踩坑。

1. 轮播图不轮播

这个原因有很多,首先要检查样式swiper.css是否正确的引进来了,其次是最容易被忽略的也是这次最主要的原因,最新版的vue-awesome-swiper是基于swiper4,有很多配置option已经变了,最为明显的就是原来的key-value格式autoplay: true,现在已经变成了下面这样的json格式:

autoplay:{
enabled: true,
disableOnInteraction: false,
delay: 3000
},
pagination: {
el: '.pagination'
}

下图为证:

官网上的图
配置好以后应该是可以轮播了,还有就是SPA如果不是多个轮播的话没必要全局引这个,

import VueAwesomeSwiper from 'vue-awesome-swiper';
import 'swiper/dist/css/swiper.css';
Vue.use(VueAwesomeSwiper);

只需要在封装好的轮播组件内引入以下这个就够了。

import { swiper, swiperSlide } from 'vue-awesome-swiper';
import 'swiper/dist/css/swiper.css'

2. 分页器pagination没出现

这个的话其一就是因为上面提到的配置option格式变了,其二是需要在pagination 的div盒子里增加slot="pagination"用来分发,这两个都没问题的话应该就OK了。

3. 轮播第二次开始后第一张图一闪而过

这个问题困扰了我好久,百度了很久也没找到有用的线索,今天早上去了公司心里想这个问题必须解决啊,要不体验也太差了,所以直接Google一下吧,第一个答案就是vue-awesome-swiper的GitHub上的issue,一看原来早已有人遇到了类似的问题,作者给出的解释是由于vue特殊的渲染机制导致数据没有完全返回时swiper已经初始化了,现在解决的方法是加v-if=“data.length”,保证数据完全返回了才开始渲染swiper,这样总算是解决了,体验马上好极啦!之前由于英文不好所以一般有问题都是百度,最近发现同事有问题都是Google,今日一试果然是快准狠,以后要充分的利用好Google和StackOverFlow,提升效率不是一点半点哈!

4. resize()方法报错undefined

这个问题也是因为swiper4已经把resize变为一个object,它包含两个方法,我用了它的resizeHandler()方法,这样就OK了。

技术在不断进步,插件在不断更新,以后遇到问题一定要先看原文档,解决问题多借助Google!

偶遇vue-awesome-swiper的坑的更多相关文章

  1. vue引入swiper vue使用swiper vue脚手架使用swiper /引入js文件/引入css文件

    vue引入swiper  vue使用swiper  vue脚手架使用swiper /引入js文件/引入css文件 ------------------------------------------- ...

  2. vue项目打包采坑

    1. vue项目打包采坑 1.1. vue运行报错error:Cannot assign to read only property 'exports' of object '#' 这个错误我是在打包 ...

  3. vue配置环境踩坑

    Vue 环境配置踩坑 目录 Vue 环境配置踩坑 windows下cnpm -v :无法将"cnpm"项识别为 cmdlet.函数.脚本文件或可运行程序的名称. windows下c ...

  4. vue 使用swiper的一些问题(页面渲染问题)

    //Swiper上下滚动初始化 swiper_init(){ this.$nextTick(function(){ var mySwiper = new Swiper ('.swiper-contai ...

  5. vue中遇到的坑!!!!!

    一 .vue安装的坑 报错时的常见问题 1.cnpm install 模块名 –save-dev(关于环境的,表现为npm run dev 启动不了)cnpm install 模块名 –save(关于 ...

  6. vue+ vue-router + webpack 踩坑之旅

    说是踩坑之旅 其实是最近在思考一些问题 然后想实现方案的时候,就慢慢的查到这些方案   老司机可以忽略下面的内容了 1)起因  考虑到数据分离的问题  因为server是express搭的   自然少 ...

  7. Vue与swiper想结合封装全屏轮播插件

    项目需求介绍: 1.页面图文混排, 2.点击图片后全屏展示图片,并在底部显示文字,如果没有则不显示 3.关闭全屏后依然停留在上次浏览的位置 4.浏览图片时,不管点击的哪张图片,全屏展示的时候也要显示这 ...

  8. vue中的css作用域、vue中的scoped坑点

    一.css作用域 之前一直很困扰css的作用域问题,即使是模块化编程下,在对应的模块的js中import css进来,这个css仍然是全局的.导致在css中需要加上对应模块的html的id/class ...

  9. vue数据响应的坑

    1.首先遇到的第一个坑是数组 vue初始化时,data是一个数组并且为空的时候,里面有一些对象元素,直接改变这些对象的的属性不会触发视图更新 解决办法,copy一个新的数组(vue.assign是浅c ...

  10. vue awaresome swiper的使用

    main.jsimport VueAwesomeSwiper from 'vue-awesome-swiper'import 'swiper/dist/css/swiper.css'Vue.use(V ...

随机推荐

  1. haproxy实现会话保持(2):stick table

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  2. 服务器 Disk full

    General error: 1021 Disk full (/tmp/#sql_24a3_0.MAI); waiting for someone to free some space... (err ...

  3. AndroidStudio Frameworks detected: Android framework is detected in the project Configure

    出现这个问题应该是文件没有用正确的方式打开.   遇到这种情况,就要去检查下载的这个包的结构.       我的这个文件明显真正的是下面这个文件夹,如果把整个当做一个android文件打开会导致文件结 ...

  4. play @Before 的使用

    用play 框架也又一段时间了,也算是有了些经验,今天就总结下@Before 的使用. 这个注解能主要在控制器中使用,用于在Action 前进行拦截 unless 表示不用拦截 的Action @Be ...

  5. linux 记录用户操作日志

    将以下加入到/etc/profile 最后 history USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]/ ...

  6. RESTful接口设计原则和优点

    RESTful架构优点: 前后端分离,减少流量 安全问题集中在接口上,由于接受json格式,防止了注入型等安全问题 前端无关化,后端只负责数据处理,前端表现方式可以是任何前端语言(android,io ...

  7. 用MATLAB结合四种方法搜寻罗马尼亚度假问题

    选修了cs的AI课,开始有点不适应,只能用matlab硬着头皮上了,不过matlab代码全网仅此一份,倒有点小自豪. 一.练习题目 分别用宽度优先.深度优先.贪婪算法和 A*算法求解"罗马利 ...

  8. 原生js移动端滑动事件

    移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成.但是在移动设备上,要实现这种轮播的效果,就需要用到核心的touch事件.处理touch事件 ...

  9. Firefox书签同步工具Xmarks

    Xmarks作为Firefox最受欢迎的社会化书签扩展之一,其前身为Foxmarks,并且显著的增加了它的功能.Xmarks已被LastPass(领先的密码和数据管理)收购. 之前一直是只使用火狐浏览 ...

  10. C# 中的关键字整理

    C#中的所有关键字大致可以分为保留关键字和上下文关键字两部分 快来看一下有没有不认识的吧 欢迎补充 保留关键字 abstract  as  base  bool  break byte  case  ...