有时候我们需要在vue中使用轮播组件,如果是在vue组件中引入第三方组件的话,最好通过npm安装,从而进行统一安装包管理。

申明:本文所使用的是vue.2x版本。

通过npm安装插件:

 npm install swiper --save-dev

在需要使用swiper的组件里引入swiper,swiper的初始化放在mounted里

Slider.vue源码:

<template><div class="swiper-container"><div class="swiper-wrapper"><div class="swiper-slide"><img src="../fixtures/sliders/t1.svg"/></div><div class="swiper-slide"><img src="../fixtures/sliders/t2.svg"/></div><div class="swiper-slide">Slide 3</div></div><!-- 如果需要分页器 --><div class="swiper-pagination"></div><!-- 如果需要导航按钮 --><!--<div class="swiper-button-prev"></div>--><!--<div class="swiper-button-next"></div>--><!-- 如果需要滚动条 --><!--<div class="swiper-scrollbar"></div>--></div>
</template>
<script>import 'swiper/dist/css/swiper.css'import Swiper from 'swiper';export default {name: "Slider",mounted(){new Swiper ('.swiper-container', {loop: true,// 如果需要分页器
        pagination: '.swiper-pagination',// 如果需要前进后退按钮
        nextButton: '.swiper-button-next',prevButton: '.swiper-button-prev',// 如果需要滚动条
        scrollbar: '.swiper-scrollbar',})}}
</script><style scoped>.swiper-container {width: 100%;margin: 0;padding: 0;}.swiper-wrapper {height: 200px;}.swiper-slide img {max-width: 100%;}.swiper-slide {text-align: center;background: #fff;/* Center slide text vertically */display: -webkit-box;display: -ms-flexbox;display: -webkit-flex;display: flex;-webkit-box-pack: center;-ms-flex-pack: center;-webkit-justify-content: center;justify-content: center;-webkit-box-align: center;-ms-flex-align: center;-webkit-align-items: center;align-items: center;}
</style>

运行效果:

接下来,我们对上面的代码进行重构,因为如果我们用 css 选择器作为 Swiper 定位页面上元素依据的话,假如在一个页面上同时有两个.slider-container,那么这个组件就会乱套 !我们要秉承着低耦合的开发方式来重构我们的代码。

我们可以使用Vue提供的更精确的指明方式在元素中添加ref熟悉,然后在代码内通过 this.$refs.引用名来引用。

这是Vue.js2.0后的编号,ref标记是标准的HTML属性,它取代了Vue.js 1.x中v-ref的写法

需要注意的是,如果改为动态绑定图片,请参考:vue-cil和webpack中本地静态图片的路径问题解决方案

我这里将静态资源文件转移到了static目录下面。

重构后的代码如下:

<template><div><div class="swiper-container" ref="slider"><div class="swiper-wrapper"><div class="swiper-slide" v-for="slide in slides"><router-link :to="{name:'BookDetail',params:{id:slide.id}}"><img :src="slide.img_url"/></router-link></div></div></div></div>
</template>
<script>import 'swiper/dist/css/swiper.css'import Swiper from 'swiper'export default {name: "Slider",data(){return{slides:[{id:1,img_url:'./static/sliders/t1.svg'},{id:2,img_url:'./static/sliders/t2.svg'}]}},mounted(){new Swiper (this.$refs.slider, {loop: true,// 如果需要分页器
        pagination: '.swiper-pagination',// 如果需要前进后退按钮
        nextButton: '.swiper-button-next',prevButton: '.swiper-button-prev',// 如果需要滚动条
        scrollbar: '.swiper-scrollbar',})}}
</script>

这里还没有把组件完全独立,里面有数据定义,其实可以把这个数据作为一个参数传递进来,也就是组件之间数据传递。

Vue页面跳转传参

通过路由传参,在router/index.js中定义路由

export default new Router({routes: [{name:'BookDetail',path:'/books/:id',component: BookDetail}]
})

前面的轮播组件中已经定义了需要传递的路由参数

 <router-link :to="{name:'BookDetail',params:{id:slide.id}}"><img :src="slide.img_url"/></router-link>

参数接收界面BookDetail.vue

<template>
<div>点击的是:<span v-text="id"></span>
</div>
</template><script>export default {name: "BookDetail",data(){return{id:this.$route.params.id}},props:[]}
</script><style scoped></style>

如果传递参数太多,这样的方式肯定不方便,那么可以采用vuex,或者组件数据传递。

关于组件传值可以参考:Vue 组件之间传值

关于Vue-cli npm run build生产环境打包,本地不能打开问题

之后每次运行:hs即可。

vue中引用swiper轮播插件相关推荐

  1. 在vue中使用swiper轮播图(亲测有效)

    在vue中使用swiper轮播图(亲测有效) 1.新建vue项目 2.装swiper的包 3.使用swiper 网上搜了一大堆在vue中如何使用swiper,结果搜出来一堆垃圾,也不知道从哪里复制的, ...

  2. swiper轮播插件的使用

    swiper轮播插件的使用 引入js文件 <script src="./js/swiper-3.4.2.min.js"></script> 接收后台返回的轮 ...

  3. 基于Vue的响应式轮播插件|vue-owl-carousel

    vue-owl-carousel 是一个基于Vue的响应式轮播插件,灵感来源于 jQuery 插件 owlCarousel. 它提供了类似于 owlCarousel 的 API 和功能,同时结合了 V ...

  4. html移动轮播后盾网,后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件...

    1.首先呢,咱们去gitHub上面找一个vue-awesome-swiper插件. 前端 为了保证整个项目的稳定性,咱们安装2.6.7版本. vue npm install vue-awesome-s ...

  5. vue之猫眼json数据的获取直接用于自己的vue项目中,swiper轮播插件的坑

    vue之猫眼json数据的获取直接用于自己的vue项目中 遇到问题总结: 加载不出猫眼数据,无法调用,数据被限制 猫眼电影图片的拼接及删除问题 swiper的迷幻坑** 首先来说一下第一问题 加载不出 ...

  6. react 中使用Swiper轮播图插件

    第一步.安装 npm i swiper 第二步.使用 import { Swiper, SwiperSlide } from 'swiper/react'; //根据自己的需要引用样式 import ...

  7. 在vue项目中 使用swiper轮播图的关于 在ios中图片白边闪屏踩坑记录

    场景描述: 近日,接到一个需求,改善APP首页的布局,需要在顶部添加一个可滚动的栏目导航,以切换栏目然后切换栏目内容类似于唯品会目前的切换效果.如下图 问题描述: 在切换顶部栏目的时候,下面内容页的b ...

  8. vue中用的swiper轮播图的用法及github的地址

    https://github.com/surmon-china/vue-awesome-swiper 以上是github的地址 Vue-Awesome-Swiper Swiper4 component ...

  9. Swiper 轮播插件

    Swiper常用于移动端网站的内容触摸滑动 Swiper是纯javascript打造的滑动特效插件,面向手机.平板电脑等移动终端. 下载地址 API 初始化使用方法: HTML <div cla ...

最新文章

  1. python-docx表格设置实线_python docx加入表格 在表格中加图,设置框线
  2. numpy 数组 填充 0、1和各种值
  3. ue编辑器拖拽上传图片_为百度UE编辑器上传图片添加水印功能
  4. MongoDB 分布式部署教程
  5. 更改android模拟器sdcard文件夹的权限
  6. xp系统如何使两台计算机共享,xp系统共享文件,两部电脑共享文件方法
  7. [网络流24题]孤岛营救问题
  8. 工具之wireshark保存rtp数据
  9. 多操作赋的语义判断(如 int *a和int* a)
  10. php设置input时间格式,input[type='date']自定义样式与日历校验功能
  11. python按照日期筛选excel_用python判断Excel单元格格式为输出日期(日期字段位置不固定)的,按datetime格式输出日期(而非float)_python excle 日期列...
  12. delphi 热部署_DelphiWebMVC微信公众号开发
  13. com alibaba.fastjson.JSONException:witer JavaBean error....
  14. kappa系数简介---一致性与分类准确度指标
  15. C# 压缩和修复Access数据库
  16. vue 渲染函数处理slot_Vue渲染函数详解
  17. python 多线程内子线程结束后执行主线程
  18. matlab 二次函数图像
  19. 分号与逗号的区别及举例_顿号、逗号、分号的区别
  20. Spring嵌套事务异常Transaction rolled back because it has been marked as rollback-only

热门文章

  1. SpringBoot项目瘦身指南,大厂如何面试看出你的水平
  2. JAVA day16、17 数据结构(栈、队列、数组、链表、红黑树)
  3. 下载的代码找不到rt.jar中的类
  4. 小甲鱼python第六讲_小甲鱼Python第十七讲课后习题(示例代码)
  5. 复工复产三个一内容_节后复工安全生产三个一
  6. android9 system_server 访问sd卡_Leez学院丨手把手教你栗子板Android9固件编译
  7. oracle说不能初始化失败,PLSQLDeveloper 提示不能初始化?
  8. php7.1 集成php fpm,LNMP建站教程(2):安装 PHP 7.1 与 PHP7.1-FPM以及与Nginx集成
  9. mysql 安装导航_ubuntu下安装Mysql
  10. Node的textContent属性