一、实例化和导入

import Swiper from 'swiper';

let viewSwiper;

let previewSwiper;

在外面声明全局变量,然后在初始化方法里面实例化swiper实例,该初始化方法在mounted里面调用。

二、坑s

  1. 首先在vue里面初始化时数据肯定不是一成不变的,而是通过后台请求过来,或者父组件传入进来的,为了满足swiper能够动态监听数据,并刷新显示效果,需要添加上下面两个配置:

observer:true, //修改swiper自己或子元素时,自动初始化swiper
observeParents:true,//修改swiper的父元素时,自动初始化swiper
2. 当设置loop:true,可能会导致图片的点击事件的失效。原理是:swiper动态的渲染dom时,只是‘复制粘贴’,且并没有把dom中的监听事件给‘复制’进来,进而导致事件监听事件失效。
  在网上搜了好多,说是用swiper实例化中的点击回调函数(如下)
  但依旧监听不到这个回调,后来把实例化中的 allowTouchMove: false, 注释掉,发现竟然可以了,懵逼~
on:{
click: function(e) {
viewSwiper.slideTo(this.clickedIndex)
}
}

3.第三个问题是初始化数据之后,显示的确实最后一个slider,搞不懂后来网上寻找了一种方案,用slideTo(swiper自带)动态的还原到第一个slider。

this.$nextTick(function() {
this.initSowingImg();
setTimeout(function(){previewSwiper.slideTo(0,0)},500); // 解决初始化进来后默认是最后一个slide的问题
});

4.第四个坑是,后来想在其父级组件中实例化多个swiper实例,也就是多个轮播图,发现并不能行,一直报错,然后果断弃坑自己写了个简单版的。

5.实例参数如下:loop 失效,loop不管是false,还是true,效果都是不能循环的,搞不懂~  有没有大神解答下

 previewSwiper = new Swiper('.preview .swiper-container', {
slidesPerView: 'auto',
loop: false,
// allowTouchMove: false, 与回调冲突,设置true时,swiper点击回调经常失效。注释掉
observer:true, //修改swiper自己或子元素时,自动初始化swiper
observeParents:true,//修改swiper的父元素时,自动初始化swiper
on:{
click: function(e) {
viewSwiper.slideTo(this.clickedIndex)
}
}
})

  

swiper在vue中的使用 及 神坑的更多相关文章

  1. swiper在vue中的用法

    首先通过npm i vue-awesome-swiper --save 来在vue中下载插件 然后再main.js中引入 require('swiper/dist/css/swiper.css')im ...

  2. swiper在vue中正确的使用方法

    1.安装swiper,执行npm install vue-awesome-swiper --save命令 2.在main.js中添加下面三行 import 'swiper/dist/css/swipe ...

  3. 关于swiper在vue中不生效的问题

    在初始化swiper中加入这两个属性: observer:true observeParents:true var swiper = new Swiper('.swiper-container', { ...

  4. vue中引用swiper轮播插件

    有时候我们需要在vue中使用轮播组件,如果是在vue组件中引入第三方组件的话,最好通过npm安装,从而进行统一安装包管理. 申明:本文所使用的是vue.2x版本. 通过npm安装插件: npm ins ...

  5. vue中添加swiper轮播插件

    网上找了很多,最后还是官网最完整. https://github.com/surmon-china/vue-awesome-swiper 安装: 1.npm install vue-awesome-s ...

  6. 在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效??

    在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效?? 是因为swiper提前初始化了,那时候数据还没有完全出来.这里有两种解决办法 1. 使用vue提供的$nextTic ...

  7. Vue中怎样使用swiper组件?

    我用的VS Code编译器,首先打开终端,进入项目(我是在13-vue文件夹下面的elem中使用) D:\study\web\13-vue\elem> cnpm install vue-awes ...

  8. vue中允许你继续使用swiper的组件 vue-awesome-swiper---切图网

    swiper是一个在切图中好用到不行的图片轮播插件,包括3d轮播.h5滑屏等复杂应用都不在话下,到了vue项目一切逻辑完全颠覆了,没有获取dom的概念,还好有 vue-awesome-swiper组件 ...

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

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

随机推荐

  1. SQL笔记---多表左联

    这是实际场景当中的一个例子,拿出来分析总结思路. -- SQL 查询 --SELECT  orderQuery.Rk_SkuCode ,        orderQuery.SkuName,      ...

  2. linux系统编程之文件与IO(四):目录访问相关系统调用

    1. 目录操作相关的系统调用     1.1 mkdir和rmdir系统调用     1.1.1 实例     1.2 chdir, getcwd系统调用     1.2.1 实例     1.3 o ...

  3. 【原创】Self-Contained Container(自包含容器)

    自包含容器是一种自包含的结构,很有趣.需要使用模板类,但只有在模板类型是该类的子类时,才使该类具有自包含的结构.这种结构从数据结构的角度看比较有用.通常的树类中的模板通常是“数据”的概念,即模板不参与 ...

  4. Asp.Net从相对路径获取绝对路径的方法(不需要httpcontext上下文也可)

    //如果拿不到当前HttpContext上下文的话可以用该方法取得绝对路径 var filePath = HostingEnvironment.MapPath("需要获取绝对路径 的 相对路 ...

  5. 【bug记录】jpa 解决org.hibernate.lazyinitializationexception could not initialize proxy - no session

    前言 最近开发项目比较忙,Spring Cloud的笔记得稍稍放放了,下午出来个bug,恶心的不行,功能很简单,也没有什么级联或复杂的映射关系,就是一直在报三个异常 Caused by: com.fa ...

  6. [bug]小程序弹出层滚动穿透问题修复

    如题,解决方案有两种: 1.如果弹出层没有滚动事件,就直接在蒙板和弹出层上加 catchtouchmove;(方便快捷) <template name="popup-modal&quo ...

  7. java保留小数点两位的4种方法

    import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public c ...

  8. Swift 里字符串(十)修改字符串

    以append操作为例 public mutating func append(_ other: String) { if self.isEmpty && !_guts.hasNati ...

  9. iOS---GCD的三种常见用法

    1.一次性代码:dispatch_once 有时候,有些代码在程序中只要被执行一次. 整个程序运行过程中,只会执行一次. - (void)viewDidLoad { [super viewDidLoa ...

  10. 下载Centos7 64位镜像

    下载Centos7 64位镜像 1.打开Centos官网 打开Centos官方网站地址:https://www.centos.org/,点击Get CentOS Now 2.点击Minimal ISO ...