vue中使用swiper失效問題及解決
vue使用swiper失效
問題描述
需求是 要在一個循環(huán)的列表中第一組數(shù)據(jù)后添加一個輪播,效果如下
由于所有循環(huán)的數(shù)據(jù)都是一個接口返回,并在一個數(shù)組中。
由以下代碼實(shí)現(xiàn)
<div v-for="(item, index) in videoList" :key="index"> <div class="index_list01"> <div class="index_list"> <div class="index_list1"> <div class="index_list1_1">{{item.title}}</div> <div class="index_list1_2" @click="gotoPage('/mine/search')">查看更多 ></div> </div> <div class="index_list2"> // 此處無關(guān)代碼省略 </div> </div> </div> <div v-if="index == 0" class="advert"> <div class="banner"> <div class="swiper-container swiper2"> <div class="swiper-wrapper"> <div v-for="(item, index) in advertList" :key="item.id || index" class="swiper-slide"><img :src="item.picUrl"/></div> </div> <div class="swiper-pagination"></div> </div> </div> </div> </div>
感覺上沒什么問題,到瀏覽器里發(fā)現(xiàn),其他輪播都可以滑動,唯獨(dú)這個輪播不行。
排查過后發(fā)現(xiàn),輪播樣式生效了,但是swiper自動添加的class沒加上,并且不可滑動,也就是說 swiper的js部分沒生效
那就是初始化swiper的問題了。我是直接在mounted生命周期里初始化的swiper,問題應(yīng)該在這里,swiper的初始化在異步加載的數(shù)據(jù)渲染之前了。
問題解決
// data中添加swiper狀態(tài) data(){ return { swiper: '' } }
猜測是swiper的初始化的順序?qū)е碌?,那就把初始化的操作延后試一?/p>
// 在methods里定義初始化的方法 initSwiper(){ if(this.swiper != ''){return} this.swiper = new Swiper('.swiper-container', { loop: true, }) }
getInfo() { this.$api.index.getIndexInfo().then(res => { let {indexCenterBannerList, classifyListCollect} = res.data let videoKeys = Object.keys(classifyListCollect) this.advertList = indexCenterBannerList this.videoList = videoKeys.map(item =>{ return { title: item, list: classifyListCollect[item] } }) // 將初始化方法放在數(shù)據(jù)請求后的下一個dom更新后 this.$nextTick(()=>{ this.initSwiper() }) }) }
調(diào)整完后,果然swiper正常了。并且之前其他swiper的loop失效的問題也解決了
vue2+swiper踩坑記 effect等參數(shù)無效
vue2使用swiper需要安裝vue-awesome-swiper,然后坑來了
使用最新4.版本的vue-awesome-swiper,effect等參數(shù)無效
解決: 降級到3.1.3
注意: 4.版本引入swiper, swiperSlide是大寫 3.1.3是小寫
4.版本獲取實(shí)例this.refs.mySwiper.swiperInstance3.版本獲取實(shí)例this.refs.mySwiper.swiper
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解如何在Vue3+TS的項(xiàng)目中使用NProgress進(jìn)度條
本文主要介紹了詳解如何在Vue3+TS的項(xiàng)目中使用NProgress進(jìn)度條,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06vue 全選與反選的實(shí)現(xiàn)方法(無Bug 新手看過來)
下面小編就為大家分享一篇vue 全選與反選的實(shí)現(xiàn)方法(無Bug 新手看過來),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02在vue中實(shí)現(xiàn)點(diǎn)擊選擇框阻止彈出層消失的方法
今天小編就為大家分享一篇在vue中實(shí)現(xiàn)點(diǎn)擊選擇框阻止彈出層消失的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09