VUE-使用计算属性设置v-if 显示与否

  1. 轮播组件默认显示最后一张图片,
  2. 原因:传递的是空数组;
  3. 解决:使用v-if="list.length"   当父组件传递过来数据才显示 ,此方法不够优雅
  4. 优雅方法:在模板部分尽量减少逻辑,因此,写在逻辑部分,使用属性方法 v-if="showSwiper"
<template>
  <div class="wrapper">
    <!-- 轮播插件 -->
    <swiper :options="swiperOption" v-if="showSwiper">
      <swiper-slide v-for="item of list" :key="item.id">
        <img class="swiper-img" :src="item.imgUrl" />
      </swiper-slide>
      <div class="swiper-pagination"  slot="pagination"></div>
    </swiper>
  </div>
</template>

<script>
export default {
  name: 'HomeSwiper',
  props: {
    list: Array
  },
  data () {
    return {
      swiperOption: {
        pagination: '.swiper-pagination',//3,插件属性,显示小点,这里需要修改小点的颜色
        loop: true  //5,支持循环轮播
      }
    }
  },
  computed: {
    //计算属性,当有值时才加载轮播图
    showSwiper () {
      return this.list.length
    }
  }
}
</script>

<style lang="stylus" scoped>
  // 4,样式穿透
  .wrapper >>> .swiper-pagination-bullet-active
    background: #fff
  .wrapper
    overflow: hidden
    width: 100%
    height: 0
    padding-bottom: 31.25%   //2,图片宽高比例为31.25,主要是防止在fast 3G模式下,图片还未加载出来时,下方的文字抖动现象
    background: #eee
    .swiper-pagination-bullet-active
     background: #fff  //修改小点的背景,放在此处,不起作用
    .swiper-img
      width: 100%  //1,设置图片的宽高
</style>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佛佛ง

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值