本文主要是介绍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"); },}
}
【待续】
这篇关于vue-awesome-swiper的一些注解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!