這篇文章給大家介紹vue項目中怎么導(dǎo)入swiper插件,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)公司主營海港網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),海港h5微信小程序開發(fā)搭建,海港網(wǎng)站營銷推廣歡迎海港等地區(qū)企業(yè)咨詢
安裝
安裝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)容
<template> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide">Slide 1</div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> </div> <!-- 如果需要分頁器 --> <div class="swiper-pagination"></div> <!-- 如果需要導(dǎo)航按鈕 --> <div class="swiper-button-prev"></div> <div class="swiper-button-next"></div> <!-- 如果需要滾動條 --> <div class="swiper-scrollbar"></div> </div> </template>
給Swiper定義一個大小
.swiper-container { width: 600px; height: 300px; }
初始化Swiper
因為dom渲染完成才能初始化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', {}) }
完成
將以上的代碼合并起來:
<template> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide">Slide 1</div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> </div> <!-- 如果需要分頁器 --> <div class="swiper-pagination"></div> <!-- 如果需要導(dǎo)航按鈕 --> <div class="swiper-button-prev"></div> <div class="swiper-button-next"></div> <!-- 如果需要滾動條 --> <div class="swiper-scrollbar"></div> </div> </template> <script> import Swiper from 'swiper'; import 'swiper/dist/css/swiper.min.css'; export default { mounted(): { var mySwiper = new Swiper('.swiper-container', {}) } } </script> <style> .swiper-container { width: 600px; height: 300px; } </style>
運行,你看可以實現(xiàn)輪播圖的效果了。但是到此為止只實現(xiàn)了輪播的效果,還沒有對數(shù)據(jù)的渲染。
對數(shù)據(jù)的渲染
在實際項目中swiper插件常用于實現(xiàn)banner圖的效果(新浪手機(jī)版):
數(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ī)定為:
[ "/upload/otherpic62/baidu_jgylogo3.gif", "/upload/otherpic62/baidu_jgylogo3.gif", "/upload/otherpic62/baidu_jgylogo3.gif", "/upload/otherpic62/baidu_jgylogo3.gif", "/upload/otherpic62/baidu_jgylogo3.gif" ]
列表渲染
<template> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide" v-for="item in imgList" :></div> </div> <!-- 如果需要分頁器 --> <div class="swiper-pagination"></div> <!-- 如果需要導(dǎo)航按鈕 --> <div class="swiper-button-prev"></div> <div class="swiper-button-next"></div> <!-- 如果需要滾動條 --> <div class="swiper-scrollbar"></div> </div> </template> <style> .swiper-slide { width: 100%; height: 400px; } <style>
到此為止已經(jīng)將數(shù)據(jù)渲染完成了,但是查看實際效果,似乎banner無法實現(xià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); });
關(guān)于vue項目中怎么導(dǎo)入swiper插件就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
網(wǎng)站欄目:vue項目中怎么導(dǎo)入swiper插件
URL標(biāo)題:http://aaarwkj.com/article14/jejode.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、外貿(mào)網(wǎng)站建設(shè)、域名注冊、商城網(wǎng)站、網(wǎng)頁設(shè)計公司、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)