vueルーレットのプラグインvue-awesome-swiper
7960 ワード
Vue-Awesome-wiper
ルーレットプラグインは、Vue.js(1.X~2.X)を同時にサポートし、PCとモバイル端末、SPAとSSRを兼ね備えています。
例
例
セットアップ
Install vue-awesome-swiperをインストールします。
SPAはコンポーネントの役割を通して、ref属性によってswiperのインスタンスを検索する必要がある。
SSRはコマンド作用により、コマンドパラメータによってswiperのインスタンスを検索する必要があります。
その他の設定とイベントは一致しています。
SSRにおける応用
例
SSR例のコード
例
API
公式サイト:http://www.swiper.com.cn/api/index.html
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
ルーレットプラグインは、Vue.js(1.X~2.X)を同時にサポートし、PCとモバイル端末、SPAとSSRを兼ね備えています。
例
例
セットアップ
Install vue-awesome-swiperをインストールします。
npm install vue-awesome-swiper --save
vueマウント
// import
import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper'
// or require
var Vue = require('vue')
var VueAwesomeSwiper = require('vue-awesome-swiper')
// mount with global
Vue.use(VueAwesomeSwiper)
// If used in Nuxt.js/SSR, you should keep it only in browser build environment
// The `Process. BROWSER_BUILD` itself is just a feature, it is only valid in Nuxt.js, you need to modify it according to your own procedures, such as: in vue official ssr scaffolding it should be` process.browser`
if (process.BROWSER_BUILD) {
const VueAwesomeSwiper = require('vue-awesome-swiper/ssr')
Vue.use(VueAwesomeSwiper)
}
// mount with component(can't work in Nuxt.js/SSR)
import { swiper, swiperSlide } from 'vue-awesome-swiper'
export default {
components: {
swiper,
swiperSlide
}
}
SPAとSSRでの使用方法の違いSPAはコンポーネントの役割を通して、ref属性によってswiperのインスタンスを検索する必要がある。
SSRはコマンド作用により、コマンドパラメータによってswiperのインスタンスを検索する必要があります。
その他の設定とイベントは一致しています。
SSRにおける応用
<!-- You can custom the "mySwiper" name used to find the swiper instance in current component -->
<template>
<div v-swiper:mySwiper="swiperOption">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="banner in banners">
<img :src="banner">
</div>
</div>
<div class="swiper-pagination swiper-pagination-bullets"></div>
</div>
</template>
<script>
export default {
data () {
return {
banners: [ '/1.jpg', '/2.jpg', '/3.jpg' ],
swiperOption: {
autoplay: 5000,
initialSlide: 1,
loop: true,
pagination: '.swiper-pagination',
onSlideChangeEnd: swiper => {
console.log('onSlideChangeEnd', swiper.realIndex)
}
}
}
},
mounted() {
console.log('app init')
setTimeout(() => {
this.banners.push('/5.jpg')
console.log('banners update')
}, 3000)
console.log(
'This is current swiper instance object', this.mySwiper,
'It will slideTo banners 3')
this.mySwiper.slideTo(3)
}
}
</script>
SPAの応用
<!-- The ref attr used to find the swiper instance -->
<template>
<swiper :options="swiperOption" ref="mySwiper">
<!-- slides -->
<swiper-slide>I'm Slide 1</swiper-slide>
<swiper-slide>I'm Slide 2</swiper-slide>
<swiper-slide>I'm Slide 3</swiper-slide>
<swiper-slide>I'm Slide 4</swiper-slide>
<swiper-slide>I'm Slide 5</swiper-slide>
<swiper-slide>I'm Slide 6</swiper-slide>
<swiper-slide>I'm Slide 7</swiper-slide>
<!-- Optional controls -->
<div class="swiper-pagination" slot="pagination"></div>
<div class="swiper-button-prev" slot="button-prev"></div>
<div class="swiper-button-next" slot="button-next"></div>
<div class="swiper-scrollbar" slot="scrollbar"></div>
</swiper>
</template>
<script>
// swiper options example:
export default {
name: 'carrousel',
data() {
return {
swiperOption: {
// NotNextTick is a component's own property, and if notNextTick is set to true, the component will not instantiate the swiper through NextTick, which means you can get the swiper object the first time (if you need to use the get swiper object to do what Things, then this property must be true)
// notNextTick , notNextTick true, NextTick swiper, swiper , swiper , true
notNextTick: true,
// swiper configs swiper api
autoplay: 3000,
direction : 'vertical',
grabCursor : true,
setWrapperSize :true,
autoHeight: true,
pagination : '.swiper-pagination',
paginationClickable :true,
prevButton:'.swiper-button-prev',
nextButton:'.swiper-button-next',
scrollbar:'.swiper-scrollbar',
mousewheelControl : true,
observeParents:true,
// if you need use plugins in the swiper, you can config in here like this
// , , , debugger
debugger: true,
// swiper callbacks
// swiper , swiper
onTransitionStart(swiper){
console.log(swiper)
},
// more Swiper configs and callbacks...
// ...
}
}
},
// you can find current swiper instance object like this, while the notNextTick property value must be true
// swiper , swiper , notNextTick true
computed: {
swiper() {
return this.$refs.mySwiper.swiper
}
},
mounted() {
// you can use current swiper instance object to do something(swiper methods)
// swiper
console.log('this is current swiper instance object', this.swiper)
this.swiper.slideTo(3, 1000, false)
}
}
</script>
非同期データ例
<template>
<swiper :options="swiperOption">
<swiper-slide v-for="slide in swiperSlides">I'm Slide {{ slide }}</swiper-slide>
<div class="swiper-pagination" slot="pagination"></div>
</swiper>
</template>
<script>
export default {
name: 'carrousel',
data() {
return {
swiperOption: {
autoplay: 3500,
setWrapperSize :true,
pagination : '.swiper-pagination',
paginationClickable :true,
mousewheelControl : true,
observeParents:true,
},
swiperSlides: [1, 2, 3, 4, 5]
}
},
mounted() {
setInterval(() => {
console.log('simulate async data')
let swiperSlides = this.swiperSlides
if (swiperSlides.length < 10) swiperSlides.push(swiperSlides.length + 1)
}, 3000)
}
}
</script>
移動先例のコード例
SSR例のコード
例
API
公式サイト:http://www.swiper.com.cn/api/index.html
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。