vue+swiper实现组件化开发的实例代码


Posted in Javascript onOctober 26, 2017

swiper的组件

<template>
  <div class="swiper-container">
    <div class="swiper-wrapper">
      <div class="swiper-slide" v-for="item in swiper"><img :src="item.room_src" alt=""></div>
      <!--<div class="swiper-slide" v-for="item in test"><img :src="item.room_src" alt=""></div>-->
    </div>
  </div>
</template>
<script>
 import Swiper from 'swiper'
 export default {
  name: 'swiper',
  data() {
   return {
    mySwiper: null,
//    test: [
//     "https://rpic.douyucdn.cn/acrpic/171024/288016_0921.jpg",
//     "https://rpic.douyucdn.cn/acrpic/171024/748396_0924.jpg",
//     "https://rpic.douyucdn.cn/acrpic/171024/453751_0922.jpg",
//     "https://rpic.douyucdn.cn/acrpic/171024/79663_0920.jpg"
//    ]
   }
  },
  props: ['swiper'], //swiper的就是test这个数据传递来的
  methods: {
   _initSwiper() {
    this.mySwiper = new Swiper('.swiper-container', {
     autoplay: 5000,//可选选项,自动滑动
    })
   },
   _updateSwiper() {
    this.$nextTick(() => {
     this.mySwiper.update(true); //swiper update的方法
    })
   },
   swiperUpdate() {
    if (this.mySwiper) { //节点存在
     this._updateSwiper(); //更新
    } else {
     this._initSwiper(); //创建
    }
   },
  },
  watch: {
   //通过props传来的数据 和 组件一加载节点就创建成功 二者不是同步,实时监听的swiper(传递的值)的变化
   swiper() {
    this.swiperUpdate();
   }
  },
  mounted() {
   this.swiperUpdate(); //页面一加载拉去数据创建节点
  }
 }
</script>
<style lang="scss" scoped>
  .swiper-container {
    width: 100%;
    height: 4rem;
    margin-top: 0.9rem;
    .swiper-wrapper {
      width: 100%;
      height: 100%;
      .swiper-slide {
        background-size: cover;
        width: 100%;
        height: 4rem;
        img {
          width: 100%;
          height: 100%;
        }
      }
    }
  }
</style>

home.vue 调用的组件方法

//html
  <swiper :swiper="roomList.slice(6,10)" ></swiper>
//js
 import swiper from 'components/swiper/swiper'
 components: {
   swiper
  },

问题:如果单纯的调用_initSwiper的方法,会发现页面是不能滚动的,但是页面随便修改东西,然后保存的swiper又可以滚动的,这个个原因是初始swiper的节点没有创建成功,值页面有穿进去的,一层一层的可以打印swiper的值为空的,当修改东西值就能传递进去的,所以的这里的我们需要通过判断节点是否成功来update siwper的方法

Javascript 相关文章推荐
javascript之解决IE下不渲染的bug
Jun 29 Javascript
Javascript 去除数组的重复元素
May 04 Javascript
javascript事件函数中获得事件源的两种不错方法
Mar 17 Javascript
用C/C++来实现 Node.js 的模块(二)
Sep 24 Javascript
JQuery自动触发事件的方法
Jun 13 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
Jun 23 Javascript
js实现防止被iframe的方法
Jul 03 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
Dec 02 Javascript
livereload工具实现前端可视化开发【推荐】
Dec 23 Javascript
详解微信小程序中var、let、const用法与区别
Jan 11 Javascript
vue开发中遇到的问题总结
Apr 07 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
May 12 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
Oct 26 #Javascript
使用Bootrap和Vue实现仿百度搜索功能
Oct 26 #Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
Oct 26 #Javascript
vue路由跳转时判断用户是否登录功能的实现
Oct 26 #Javascript
webpack3之loader全解析
Oct 26 #Javascript
JS使用正则表达式找出最长连续子串长度
Oct 26 #Javascript
AngularJS实现的输入框字数限制提醒功能示例
Oct 26 #Javascript
You might like
解析php file_exists无效的解决办法
2013/06/26 PHP
Memcached常用命令以及使用说明详解
2013/06/27 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
2012/10/12 Javascript
js、css、img等浏览器缓存问题的2种解决方案
2013/10/23 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
详解JavaScript数组过滤相同元素的5种方法
2017/05/23 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
js删除数组中的元素delete和splice的区别详解
2018/02/03 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
通过实例解析JavaScript常用排序算法
2020/09/02 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
对python中大文件的导入与导出方法详解
2018/12/28 Python
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
Pytorch之parameters的使用
2019/12/31 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
森海塞尔美国官网:Sennheiser耳机与耳麦
2017/07/19 全球购物
澳大利亚相机之家:Camera House
2017/11/30 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
UNIX文件名称有什么规定
2013/03/25 面试题
参观考察邀请函范文
2014/01/29 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
如何写自我鉴定
2014/03/19 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书