vue导入swiper_vue项目中导入swiper插件的方法
這篇文章主要為大家詳細(xì)介紹了vue項目中導(dǎo)入swiper插件的方法,具有一定的參考價值,可以用來參考一下。
感興趣的小伙伴,下面一起跟隨512筆記的小編兩巴掌來看看吧!
版本選擇
swiper是個常用的插件,現(xiàn)在已經(jīng)迭代到了第四代:swiper4。
常用的版本是swiper3和swiper4,我選擇的是swiper3。
安裝
安裝swiper3的最新版本3.4.2:
代碼如下:
npm i swiper@3.4.2 -S
這里一個小知識,查看node包的所有版本號的方法:
代碼如下:
npm view 包名 versions
組件編寫
swiper官方的使用方法分為4個流程:
加載插件
HTML內(nèi)容
給Swiper定義一個大小
初始化Swiper
我也按照這個流程編寫組件:
加載插件
代碼如下:
import Swiper from 'swiper';
import 'swiper/dist/css/swiper.min.css';
HTML內(nèi)容
代碼如下:
Slide 1Slide 2Slide 3給Swiper定義一個大小
代碼如下:
.swiper-container {
width: 600px;
height: 300px;
}
初始化Swiper
因?yàn)閐om渲染完成才能初始化Swiper,所以必須將初始化放入vue的生命周期鉤子函數(shù)mounted中:
代碼如下:
mounted(): {
/* eslint-disable no-new */
new Swiper('.swiper-container', {})
}
以上代碼中的/* eslint-disable no-new */是啟用的eslint代碼檢測的項目可以使用,如果沒有使用eslint可用使用一下代碼:
代碼如下:
mounted(): {
var mySwiper = new Swiper('.swiper-container', {})
}
完成
將以上的代碼合并起來:
代碼如下:
Slide 1Slide 2Slide 3import Swiper from 'swiper';
import 'swiper/dist/css/swiper.min.css';
export default {
mounted(): {
var mySwiper = new Swiper('.swiper-container', {})
}
}
.swiper-container {
width: 600px;
height: 300px;
}
運(yùn)行,你看可以實(shí)現(xiàn)輪播圖的效果了。但是到此為止只實(shí)現(xiàn)了輪播的效果,還沒有對數(shù)據(jù)的渲染。
對數(shù)據(jù)的渲染
在實(shí)際項目中swiper插件常用于實(shí)現(xiàn)banner圖的效果(新浪手機(jī)版):
【512pic.com溫馨提示:圖片暫缺】
數(shù)據(jù)的獲取
我用在vue項目中常用ajax插件axios來示例:
代碼如下:
axios
.get('/user?ID=12345')
.then(function (response) {
this.imgList = response;
})
.catch(function (error) {
console.log(error);
});
將獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)規(guī)定為:
代碼如下:
[
"https://www.baidu.com/img/baidu_jgylogo3.gif",
"https://www.baidu.com/img/baidu_jgylogo3.gif",
"https://www.baidu.com/img/baidu_jgylogo3.gif",
"https://www.baidu.com/img/baidu_jgylogo3.gif",
"https://www.baidu.com/img/baidu_jgylogo3.gif"
]
列表渲染
代碼如下:
.swiper-slide {
width: 100%;
height: 400px;
}
到此為止已經(jīng)將數(shù)據(jù)渲染完成了,但是查看實(shí)際效果,似乎banner無法實(shí)現(xiàn)輪播圖的效果啊。這里只是將圖片渲染了出來,但是渲染出輪播圖并沒有被初始化。因?yàn)槌跏蓟呀?jīng)在生命周期mounted時完成了。
初始化
所以在獲取數(shù)據(jù)且DOM更新后,需要重新初始化swiper。
代碼如下:
axios
.get('/user?ID=12345')
.then(function (response) {
// 獲取數(shù)據(jù)更新
this.imgList = response;
// DOM還沒有更新
this.$nextTick(() => {
// DOM更新了
// swiper重新初始化
/* eslint-disable no-new */
new Swiper('.swiper-container', {})
})
})
.catch(function (error) {
console.log(error);
});
到此,輪播圖的效果實(shí)現(xiàn)了。
總結(jié)
swiper是我們平時很常用的插件,但將swiper導(dǎo)入vue項目中遇到的問題不少。最主要的問題是要搞懂vue的生命周期,這樣才能有效地使用各種js插件。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持512筆記。
注:關(guān)于vue項目中導(dǎo)入swiper插件的方法的內(nèi)容就先介紹到這里,更多相關(guān)文章的可以留意512筆記的其他信息。
關(guān)鍵詞:vue.js
總結(jié)
以上是生活随笔為你收集整理的vue导入swiper_vue项目中导入swiper插件的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python如何查看有什么模块_在pyt
- 下一篇: python列表动态添加_在Python