及时吐槽一下。。。vue-awesome-swiper 的使用

 

今天想要在 vue 中使用 swiper 来实现一个缩略图左右切换的效果,行,干起来吧!

 

开干:

在网上找了一段代码(养成良好的白嫖习惯:https://www.jianshu.com/p/ef47983e7d90):

<template>
    <div class="moduleSeckill">
        <div class="seckill-header">今日秒杀</div>
        <div class="seckill-content">
            <swiper class="swiper-seckill" :not-next-tick="true" :options="swiperOption">
                <swiper-slide class="seckill-slide">
                    <a href="#">
                        <div class="goods_info">
                            <img src="../assets/logo.png" />
                            <div class="price">¥9.9</div>
                        </div>
                    </a>
                </swiper-slide>
                <swiper-slide class="seckill-slide">
                    <a href="#">
                        <div class="goods_info">
                            <img src="../assets/ocr.png" />
                            <div class="price">¥9.9</div>
                        </div>
                    </a>
                </swiper-slide>
                <swiper-slide class="seckill-slide">
                    <a href="#">
                        <div class="goods_info">
                            <img src="../assets/spd.png" />
                            <div class="price">¥9.9</div>
                        </div>
                    </a>
                </swiper-slide>
                <swiper-slide class="seckill-slide">
                    <a href="#">
                        <div class="goods_info">
                            <img src="../assets/controller.png" />
                            <div class="price">¥9.9</div>
                        </div>
                    </a>
                </swiper-slide>

                <swiper-slide class="seckill-slide">
                    <a href="#">
                        <div class="goods_info">
                            <img src="../assets/controller.png" />
                            <div class="price">¥9.9</div>
                        </div>
                    </a>
                </swiper-slide>
            </swiper>
        </div>
    </div>
</template>
<script>
    // 引入swiper相关组件
    import {swiper,swiperSlide} from 'vue-awesome-swiper'
    import 'swiper/css/swiper.css'

    export default {
        data() {
            return {
                swiperOption: {
                    slidesPerView: 'auto',
                    grabCursor: true,
                    setWrapperSize: true,
                    autoHeight: true,
                    freeMode: true,
                    observer: true
                }
            }
        },
        components: {
            swiper,
            swiperSlide
        },
        computed: {
            swiper() {
                return this.$refs.mySwiper.$swiper;
            }
        },
    }
</script>
<style type="text/less" lang="less" scoped="scoped">
    .moduleSeckill {
        width: 10rem;
        height: auto;
        margin: 0 auto;
        background: #fff;
        .seckill-header {
            width: 100%;
            height: 1.066667rem;
            background: #fff;
            line-height: 1.066667rem;
            font-size: 0.48rem;
            color: #333;
            text-align: center;
            border-bottom: 2px solid #ccc;
        }
        .seckill-content {
            width: 10rem;
            background: #fff;
            height: 3.68rem;
            .swiper-seckill {
                height: 3.68rem;
                .seckill-slide {
                    width: 2.293333rem;
                    margin: 0.32rem 0.32rem 0 0.32rem;
                    float: left;
                    a {
                        display: block;
                        overflow: hidden;
                        width: 100%;
                        height: 100%;
                        .goods_info {
                            width: 2.293333rem;
                            background: #fff;
                            img {
                                width: 2.293333rem;
                                height: 2.293333rem;
                            }
                            .price {
                                width: 2.293333rem;
                                height: 0.533333rem;
                                font-size: 0.373333rem;
                                color: #FD157A;
                                line-height: 0.533333rem;
                                margin-top: 0.32rem;
                                margin-bottom: 0.24rem;
                                text-align: center;
                            }
                        }
                    }
                }
            }
        }
    }
</style>

然而:

1、首先这段的 css 样式是用 less 写的,刚开始启动的时候没有注意,所以报错了:

To install it, you can run: npm install --save !!vue-style-loader!css-loader?{"sourceMap":true}!.....

看代码 + 百度,得出结果:没有安装 less 依赖的包,于是在 terminal 中执行(注意是两个包:less 和 less-loader):

cnpm install less less-loader --save-dev

下载成功后,又重新 run 了一下,结果还是报上面一样的错....

为什么呢?接着搜索后,无意间发现 "版本" 两个字,对呀,会不会跟版本有关系呢?

于是带着疑问,卸载了最新版本的 less-loader(6.1.12),重新安装了 @4.1.0 版本的 less-loader,结果不报这个错了!

 

2、虽然上面的那个错不报了,但是又报了下面这个错:

vue Unknown custom element: <swiper> - did you register the component correc

明明已经在 main.js 中引入了 swiper,为什么还是报错说:没有这个 swiper 组件呢?

继续找个半天无果,后来又无意间发现了 "版本" 两个字,对呀,会不会跟版本有关系呢?

于是,又重新卸载了 vue-awesome-swiper 默认安装的版本,换成了 3.1.3 版本,

重启后,果然不报错了!

 

===============================================================

对于问题2,其实要是认真看 vue-awesome-swiper 的文档的话,应该是可以找到问题所在的!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值