日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue项目中swiper动态更新后无法轮播问题 附带案例代码

發布時間:2024/3/13 vue 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue项目中swiper动态更新后无法轮播问题 附带案例代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

swiper是很常用的一個組件,我項目中用到的版本是4.1.6。剛開始,我就按照官網的案例寫了個demo,當然圖片都是靜態寫死的,確實可以輪播了,但是我項目的需求是要動態修改輪播圖的內容。然后我就改成vue的方式了,js和css是通過cdn引入的。下面是swiper的全部代碼:

有問題請加群交流java群:200909980,vue群:128806068 ,或者在下邊評論

vue template 代碼

輪播內容是通過循環數組自動生成的

<div class="swiper-container" v-if="markInfo.attachs && markInfo.attachs.length!=0"><div class="swiper-wrapper"><div class="swiper-slide" v-for="item in markInfo.attachs"><img :src="item.url" alt="" height="100%"></div></div><!-- 如果需要分頁器 --><div class="swiper-pagination"></div><!-- 如果需要導航按鈕 --><div class="swiper-button-prev"></div>div class="swiper-button-next"></div> </div>

vue js

methods: {initSwiper () {let _this = this_this.mySwiper = null_this.mySwiper = new Swiper('.swiper-container', {autoHeight: true, //enable auto heightspaceBetween: 20,pagination: {el: '.swiper-pagination',clickable: true,},navigation: {nextEl: '.swiper-button-next',prevEl: '.swiper-button-prev',},})} }

動態修改數據的回調

Commons.signals.changeSwiper.add((mark) => {_this.markInfo = mark //這塊數據修改后,for循環會自動修改數據,但是并不會輪播,所以需要下邊的代碼重新渲染if(mark.attachs && mark.attachs.length!=0){//沒有數據不重新渲染// DOM更新了_this.$nextTick(() => {_this.initSwiper()// swiper重新初始化})} })

到此解決方案就完畢了。下邊是一些其他的解決思路,但是我這邊試了是不行的,可能是我的這塊配置有問題,但是可以給大家說一下思路。


其他解決思路

1.先把之前所有的內容清空掉,然后一個個增加新的數據,但是我這里remove報錯了。

_this.mySwiper.removeAllSlides() _this.markInfo.attachs.forEach((el, index) => {_this.mySwiper.appendSlide('<div class="swiper-slide"><img src="'+el.url+'" alt="" height="100%"></div>'); //加到Swiper的最后})

2.把之前的組件銷毀,然后重新創建,new Swiper,但是我這銷毀的時候報錯了。

_this.mySwiper.distory(false) _this.initSwiper()// swiper重新初始化

3.修改為數據后,調用update方法,然后startAutoplay,當然我這里也不行

以上方法,大家都試試,可能是我這里環境問原因吧

關注

如果有問題,請在下方評論,或者加群討論 128806068

關注下方微信公眾號,可以及時獲取到各種技術的干貨哦,如果你有想推薦的帖子,也可以聯系我們的。

總結

以上是生活随笔為你收集整理的vue项目中swiper动态更新后无法轮播问题 附带案例代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。