vue-awesome-swiper的一些注解

最近在写前端,因为人手不足临时加入,前端水平欠佳。

开发过程中用到了vue-awesome-swiper,对于swiper的定义、事件、参数等,基本可以参考 https://www.swiper.com.cn/api/start/new.html 来写。

我今天之所以再重复劳动,是想记录一些他没写的东西。以下是个人测试得到的结论,供参考、防遗忘。

我们的前端,用的是vue。

在下面的示例代码中,我在写 on 事件时,定义函数的写法是:

function_name: ()=>{
    // your code
},

而不是一般的:

function_name: function(){
    // your code
}

是因为,据说(后面这句是网上查到的):

在最新的swiper中,swiper绑定的事件中,是通过this指向当前swiper对象的。而在事件回调中,我们需要获取vue页面data中的数据,但是此时的this并不指向vue对象。因此,使用es6的箭头函数 ()=> ,使的函数内使用的this指向vue对象。

 以下是个人在调试过程中的一些注解(官网有的就尽量不写了):

mySwiperOption:{
    initialSlide:53, // 我的业务需求使得我初始化在第53,下标从0开始
    loop: false, //禁止循环
    observer: true,
    observeParents: true,
    on:{
        /**
         * 如果initialSlide=0,页面加载的时候,触发的函数顺序是:created、mounted、init
         * 如果initialSlide大于0,  页面加载的时候,触发的函数顺序是:
         *    created、mounted、slideNextTransitionStart、slideNextTransitionEnd、init
         * 我的代码里面定义了几个echarts。当把echarts的初始化放在mounted里面时,
         * 即使写了this.$nextTick也还是会报dom不存在的问题。放到此处的init里面,可以了。
         */
        init: ()=>{
            // your code
            // this.$nextTick()将回调延迟到下次 DOM 更新循环之后执行。
            // 在修改数据之后立即使用它,然后等待 DOM 更新。
            this.$nextTick(() => 
            {
              this._initTestChart1();
              this._initTestChart2();
              this._initTestChart3();
              this._initTestChart4();
            });
        },

        /**
         * next,是当前元素的右边的或下边的元素将要显示。
         * 进入start函数的时候,activeIndex已经变成下一个值了。
         * 如果把业务逻辑代码放start里面,会导致划拉的时候,swiper的手感要停顿一下。
         * 逻辑放end里面,划拉的时候没有顿感,在划完了开始执行逻辑。
         */
         slideNextTransitionStart: ()=>{
            // alert("slideNextTransitionStart");
            // 经测试,initialSlide大于0,页面加载的时候首次触发该函数时,
            // this.$refs.mySwiper.$swiper是null            
            if(this.$refs.weekSwiper.$swiper != null){
              // write your code here
            }
        },

        /**
         * 一个swiper item划结束了,触发该函数。
         */
        slideNextTransitionEnd: ()=>{
            // alert("slideNextTransitionEnd");
        },

        /**
         * 元素往左边划(其实手势是,手指往右边划拉),也就是当前元素的左边或上边的元素将显示。
         */
        slidePrevTransitionStart: ()=>{
            alert("slidePrevTransitionStart");         
        },

        /**
         * 元素往左边划(其实手势是,手指往右边划拉),也就是当前元素的左边或上边的元素将显示。
         */
        slidePrevTransitionEnd: ()=>{
            alert("slidePrevTransitionStart");         
        },


            
    }
}

【待续】

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值