vue使用swiper实现轮播以及遇到的坑

swiper插件的使用

1.安装

npm install vue-awesome-swiper --save

2.全局引用(main.js)

import VueAwesomeSwiper from 'vue-awesome-swiper'
import 'swiper/swiper-bundle.css'
Vue.use(VueAwesomeSwiper, /* { default options with global component } */)

3.在组件中引用

import { swiper, swiperSlide, directive } from "vue-awesome-swiper";
import "swiper/swiper-bundle.css";
export default {
  components: {
    swiper,
    swiperSlide,
  },
}
组件代码
<template>
  <div class="app">
    <swiper class="swiper" :options="swiperOption" >
        <swiper-slide v-for="(item, index) in banners" :key="index">
            <div class="app_img">{{ item.name }}</div>
        </swiper-slide>
      <div class="swiper-button-prev" slot="button-prev"></div>
      <div class="swiper-button-next" slot="button-next"></div>
    </swiper>
  </div>
</template>
data() {
    return {
      banners: [
        { name: "11111" },
        { name: "2222" },
        { name: "333" },
        { name: "44444" },
        { name: "55555" },
      ],
      // 轮播图
      swiperOption: {
          slidesPerView: 3, // 每页展示几条数据
          autoplay: true, // 是否自动播放
          navigation: {
             nextEl: '.swiper-button-next',
             prevEl: '.swiper-button-prev'
          },
          observer: true,
          // observeParents: true,
      },
    };
  },

样式可以按照自己的需要写哦

这样一个完整的轮播图就出来了,但是会遇到好多坑

坑1:完成组件安装,引入,注册后,却报错:

Module not found: Error: Can't resolve 'swiper/css/swiper.css' in ...

这是因为版本问题

解决方式如下:
import 'swiper/css/swiper.css'

修改为:

import 'swiper/swiper-bundle.css'

参考:https://github.com/surmon-china/vue-awesome-swiper

// import style (>= Swiper 6.x)
import 'swiper/swiper-bundle.css'

// import style (<= Swiper 5.x)
import 'swiper/css/swiper.css'

坑2:左右箭头点击失效的情况

这还是因为vue-awesome-swiper插件包的版本问题

解决方式如下:
npm uninstall vue-awesome-swiper --save
npm install vue-awesome-swiper@3.1.3 --save

安装完3.1.3的版本后,重新启动查看就解决了

坑3:运行项目时报错Cannot set property 'params' of undefined

因为版本间引入的语句不一致导致的

解决方式如下:
import { Swiper, SwiperSlide, directive } from 'vue-awesome-swiper'

修改为:

import { swiper, swiperSlide, directive } from "vue-awesome-swiper";

注意:全局和组件局部引入的都要修改,components里的也别忘了

最后附上轮播图种类网址:https://github.surmon.me/vue-awesome-swiper/
里面有各种各样的轮播图,可以直接复制代码,然后改成自己想要的就ok了~

到这里我遇到的坑解决完了,轮播图也可以正常使用了,如果大家有新的问题可以一起讨论。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容