vue使用swiper插件實(shí)現(xiàn)輪播圖的示例
hello大家好,最近我在做一個(gè)仿餓了么的項(xiàng)目,我會(huì)將我的項(xiàng)目經(jīng)驗(yàn)同步到這里,與大家分享!
vue - 使用swiper插件實(shí)現(xiàn)輪播圖
下載安裝: npm install swiper --save
Msite.vue的HTML部分:
<!--在頁(yè)面msite_nav導(dǎo)航部分使用swiper-->
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide">1</div>
<div class="swiper-slide">2</div>
<div class="swiper-slide">3</div>
</div>
<!-- swiper輪播圖圓點(diǎn) -->
<div class="swiper-pagination"></div>
</div>
script部分引入并初始化:
<script>
import Swiper from 'swiper'
//同時(shí)引入swiper的 css文件
import 'swiper/dist/css/swiper.min.css'
export default {
//注意要在頁(yè)面加載完成之后(mounted)再進(jìn)行swiper的初始化
mounted () {
//創(chuàng)建一個(gè)swiper實(shí)例來實(shí)現(xiàn)輪播
new Swiper('.swiper-container', {
autoplay: true,
// 如果需要分頁(yè)器
pagination: {
el: '.swiper-pagination',
clickable: true
}
})
}
}
</script>
需要注意的是:在引入css文件的時(shí)候,因?yàn)榘姹静煌?,引入的方式也不同,否則會(huì)因找不到相對(duì)應(yīng)的css文件而報(bào)錯(cuò),比如最新的版本
import 'swiper/swiper-bundle.min.css'
具體用法參考[Swiper官方文檔]
有一個(gè)需要特別注意的是,需要在請(qǐng)求數(shù)據(jù)之后創(chuàng)建swiper實(shí)例
使用watch與$nextTick解決輪播的Bug
分頁(yè)器Swiper其實(shí)應(yīng)該是在輪播列表顯示(即categorys數(shù)組有了數(shù)據(jù))以后才初始化。
最開始categorys為空數(shù)組,有了數(shù)據(jù)才會(huì)顯示輪播列表,而要監(jiān)視categorys的數(shù)據(jù)變化,就要用到watch。
// 新建watch 監(jiān)聽categorys
watch: {
categorys (value) { // categorys數(shù)組中有數(shù)據(jù)了
// 但界面還沒有異步更新
}
}
// 刪除mounted中的new Swiper...代碼
但其實(shí)state里的狀態(tài)數(shù)據(jù)改變(categorys接收數(shù)據(jù))與異步更新界面(顯示輪播列表)是兩個(gè)步驟。所以需要等一等,界面完成異步更新后才可以進(jìn)行Swiper的初始化。
// 使用setTimeout可以實(shí)現(xiàn)效果, 但是時(shí)機(jī)不準(zhǔn)確
setTimeout(() => {
// 創(chuàng)建一個(gè)Swiper實(shí)例對(duì)象, 來實(shí)現(xiàn)輪播
new Swiper('.swiper-container', {
autoplay: true,
// 如果需要分頁(yè)器
pagination: {
el: '.swiper-pagination',
clickable: true
}
})
}, 100)
利用vm.$nextTick( [callback] )來實(shí)現(xiàn)等待界面完成異步更新就立即創(chuàng)建Swiper對(duì)象
// 在修改數(shù)據(jù)之后立即使用它,然后等待 DOM 更新。
this.$nextTick(() => {
// 一旦完成界面更新, 立即執(zhí)行回調(diào)
new Swiper('.swiper-container', {
autoplay: true,
pagination: {
el: '.swiper-pagination',
clickable: true
}
})
以上就是vue使用swiper插件實(shí)現(xiàn)輪播圖的示例的詳細(xì)內(nèi)容,更多關(guān)于vue使用swiper插件實(shí)現(xiàn)輪播圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue項(xiàng)目history模式下微信分享爬坑總結(jié)
這篇文章主要介紹了Vue項(xiàng)目history模式下微信分享爬坑總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03
Vuex數(shù)據(jù)持久化實(shí)現(xiàn)的思路與代碼
Vuex數(shù)據(jù)持久化可以很好的解決全局狀態(tài)管理,當(dāng)刷新后數(shù)據(jù)會(huì)消失,這是我們不愿意看到的。這篇文章主要給大家介紹了關(guān)于Vuex數(shù)據(jù)持久化實(shí)現(xiàn)的思路與代碼,需要的朋友可以參考下2021-05-05
vue實(shí)現(xiàn)圖片拖拽及鼠標(biāo)滾輪放大縮小的示例代碼
本文主要給大家介紹如何vue實(shí)現(xiàn)圖片拖拽及鼠標(biāo)滾輪放大縮小,文中有詳細(xì)的代碼供大家參考,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-08-08
Vue.js實(shí)現(xiàn)移動(dòng)端短信驗(yàn)證碼功能
現(xiàn)在的短信驗(yàn)證碼一般為4位或6位,則頁(yè)面中會(huì)相應(yīng)的顯示4個(gè)或6個(gè)文本框.好多網(wǎng)站需求都有此功能,今天小編給大家分享基于vue.js實(shí)現(xiàn)移動(dòng)端短信驗(yàn)證碼功能,需要的朋友參考下吧2017-03-03
深入理解與使用keep-alive(配合router-view緩存整個(gè)路由頁(yè)面)
這篇文章主要介紹了深入理解與使用keep-alive(配合router-view緩存整個(gè)路由頁(yè)面),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09
詳解webpack+vue-cli項(xiàng)目打包技巧
本篇文章主要介紹了詳解webpack+vue-cli項(xiàng)目打包技巧 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
vue獲取v-for異步數(shù)據(jù)dom的解決問題
這篇文章主要介紹了vue獲取v-for異步數(shù)據(jù)dom的解決問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
vue?批量自動(dòng)引入并注冊(cè)組件或路由實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了vue?批量自動(dòng)引入并注冊(cè)組件或路由實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07

