vue-awesome-swiper轮播插件的使用

    Vue-Awesome-Swiper是一个基于swiper4的,适用于vue的轮播插件,支持服务端渲染和单页应用。

    github地址:https://github.com/surmon-china/vue-awesome-swiper

    一、插件安装

npm install vue-awesome-swiper --save

    二、插件挂载

        1、全局挂载

import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper'

// require styles
import 'swiper/dist/css/swiper.css'

Vue.use(VueAwesomeSwiper, /* { default global options } */)

        2、挂载到组件中

// require styles
import 'swiper/dist/css/swiper.css'
import { swiper, swiperSlide } from 'vue-awesome-swiper'
export default {
  components: {
    swiper,
    swiperSlide
  }
}

三、模板结构

<!-- The ref attr used to find the swiper instance --><template>
  <swiper :options="swiperOption" ref="mySwiper" @someSwiperEvent="callback">    <!-- 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>  
export default {    
    name: 'carrousel',    
    data() {      
        return {        
            swiperOption: {          
                // some swiper options/callbacks          
                // 所有的参数同 swiper 官方 api 参数          
                // ...        
            }      
        }    
    },    
    computed: {      
        swiper() {        
            return this.$refs.mySwiper.swiper      
        }    
    },    
    mounted() {      
        // current swiper instance      
        // 然后你就可以使用当前上下文内的swiper对象去做你想做的事了      
        console.log('this is current swiper instance object', this.swiper)      
        this.swiper.slideTo(3, 1000, false)    
    }  
}
</script>

四、Vue数据循环例子

<template>
  <swiper :options="swiperOption">
    <swiper-slide v-for="(slide, index) in swiperSlides" :key="index">I'm Slide {{ slide }}</swiper-slide>
    <div class="swiper-pagination" slot="pagination"></div>
  </swiper>
</template>
<script>  
export default {
    name: 'carrousel',
    data() {      
        return {        
            swiperOption: {          
                pagination: {            
                    el: '.swiper-pagination'          
                }        
            },        
            swiperSlides: [1, 2, 3, 4, 5]      
        }    
    },    
    mounted() {      
        setInterval(() => {
            console.log('simulate async data')
            if (this.swiperSlides.length < 10) {          
                this.swiperSlides.push(this.swiperSlides.length + 1)        
            }      
        }, 3000)
    }  
}
</script>