Vue中Swiper的初始化

1、引入插件

 <script src="vue.js"></script>
  <link rel="stylesheet" href="swiper.css">
  <script src="swiper.js"></script>

2、初始化
推荐一:组件初始化

注意在mounted里初始化时,初始化会出现过早情况,达不到功能;
可在updated生命周期中初始化,但是每次更新都将会初始化一次,只是暂时解决;
我们可自行封装一个轮播图组件,让后再给组件一个key值,当key值改变,组件会重新挂载触发mounted;

Vue.Component("Swiper", {
    template: `
        <div class="swiper-container">
            <div class="swiper-wrapper">
                <slot></slot>
            </div>
            <!--如果需要分页器-->
            <div class="swiper-pagination"></div>
        </div>
    `,
    mounted(){
           new Swiper('.swiper-container',{
            loop:true,
            pagination:{
                el:".swiper-pagination"
            }
           })
       }
})
new Vue({
    el: "#box",
    data: {
        datalist: [],
        
    },
    mounted() {
        setTimeout((= {
            this.datalist=["1",'2','3']
        }),2000)
    }
})

HTML:

<body>
    <div id="app">
        <Swiper :key="datalist.length">
            <div class="swiper-slide" v-for="data in datalist">
                {{data}}
            </div>
        </Swiper>
    </div>
    <!-- 下面代码不会生效 它不在 vue的管控范围内 -->
    <!-- <h1>{{msg}}</h1> -->
</body> 

推荐二:指令初始化

只要判断数据加载完毕后触发自定义指令初始化swiper

<div class="swiper-container">
     <div class="swiper-wrapper">
        <div class="swiper-slide" v-for="(data,index) in datalist" v-swipe="{
             index:index,
             length:datalist.length
         }">
             {{data}}
         </div>
      </div>
 </div>

js:

Vue.directive("swipe",{
      inserted(el,bind){
          if(bind.value.index===bind.value.length-1){
              new Swiper(".swiper-container",{
                  loop:true,
                  pagination:{
                      el:".swiper-pagination"
                  }
              })
          }
      }
  })
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值