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í)例來(lái)實(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ì)象, 來(lái)實(shí)現(xiàn)輪播 new Swiper('.swiper-container', { autoplay: true, // 如果需要分頁(yè)器 pagination: { el: '.swiper-pagination', clickable: true } }) }, 100)
利用vm.$nextTick( [callback] )來(lái)實(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 的 solt 子組件過(guò)濾過(guò)程解析
這篇文章主要介紹了vue 的 solt 子組件過(guò)濾過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09vue中選中多個(gè)選項(xiàng)并且改變選中的樣式的實(shí)例代碼
這篇文章主要介紹了vue中選中多個(gè)選項(xiàng)并且改變選中的樣式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09Vue.js每天必學(xué)之?dāng)?shù)據(jù)雙向綁定
Vue.js每天必學(xué)之?dāng)?shù)據(jù)雙向綁定,如何進(jìn)行綁定,如何進(jìn)行數(shù)據(jù)雙向綁定,感興趣的小伙伴們可以參考一下2016-09-09Vue實(shí)現(xiàn)模糊查詢的簡(jiǎn)單方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Vue實(shí)現(xiàn)模糊查詢的簡(jiǎn)單方法,在vue中,前端模糊搜索主要是用computed屬性實(shí)現(xiàn),本文通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-08-08淺談vue 二級(jí)路由嵌套和二級(jí)路由高亮問(wèn)題
這篇文章主要介紹了淺談vue 二級(jí)路由嵌套和二級(jí)路由高亮問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08