我想通过swiper加个轮播,但是实现有点问题,麻烦老师给看看

我想通过swiper加个轮播,但是实现有点问题,麻烦老师给看看

我参考的文章:https://blog.csdn.net/lqiqil/article/details/124167282

我将 轮播图摘离出去了  Swiper.vue

https://img1.sycdn.imooc.com//climg/63dde9c80936de0008940947.jpg


以下是我参考文章写的代码

<template>
  <swiper
    class="swiper-container"
    :navigation="{
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    }"
    :pagination="{ clickable: true }"
    :autoplay="{ autoplay: true }"
    loop
  >
    <swiper-slide class="swiper-slide" v-for="(item, i) in imgs" :key="i">
      <img :src="item" alt="" />
    </swiper-slide>
    <!-- 如果需要分页器 -->
    <div class="swiper-pagination"></div>
    <!-- 如果需要导航按钮 左右箭头。如果放置在swiper-container外面,需要自定义样式。-->
    <!-- <div class="swiper-button-prev"></div>
      <div class="swiper-button-next"></div> -->
    <!-- 如果需要滚动条 -->
    <!-- <div class="swiper-scrollbar"></div> -->
  </swiper>
</template>

<script>
import { Swiper, SwiperSlide } from "swiper/vue";
import SwiperCore, {
  Navigation,
  Pagination,
  Scrollbar,
  A11y,
  Autoplay,
} from "swiper";
SwiperCore.use([Navigation, Pagination, Scrollbar, A11y, Autoplay]);

export default {
  name: "Swiper",
  data: function () {
    return {
      imgs: [
        require("../../assets/banner1.png"),
        require("../../assets/banner2.png"),
        require("../../assets/banner3.png"),
      ],
    };
  },
  components: { Swiper, SwiperSlide },
  setup() {
    const onSwiper = (swiper) => {
      console.log(swiper);
    };
    const onSlideChange = () => {
      console.log("slide change");
    };
    return {
      onSwiper,
      onSlideChange,
      modules: [Navigation, Pagination, Scrollbar, A11y],
    };
  },
};
</script>

<style lang="scss" scoped>
.swiper-container {
  width: 7.1rem;
  height: 3rem;
  border-radius: 0.1rem;
  --swiper-theme-color: #ff6600;
  --swiper-pagination-color: #248cc0;
  --swiper-navigation-color: #248cc0;
  --swiper-navigation-size: 20px;
}
.swiper-slide img {
  width: 100%;
}
</style>

https://img1.sycdn.imooc.com//climg/63ddea1409d60a8d09290456.jpg

swiper 版本

https://img1.sycdn.imooc.com//climg/63ddea2f098386d506610308.jpg


报错:超过最大调用堆栈

https://img1.sycdn.imooc.com//climg/63ddea6009dfb6d313800924.jpg


麻烦老师给看看是哪里的问题,谢谢老师

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕星星 2023-02-04 13:37:06

同学你好,报错是溢出栈的问题。组件的name属性不能设置为“swiper”,否则可能会与依赖内容冲突。可以修改为:

https://img1.sycdn.imooc.com//climg/63ddeea609ba85b705450135.jpg

自己再试试,祝学习愉快!

  • 提问者 清夏_ #1

    可以了。谢谢老师,就是说一旦出现这种堆栈的错误,就先考虑是不是组件名跟依赖冲突了是吗

    2023-02-04 13:49:18
  • 好帮手慕星星 回复 提问者 清夏_ #2

    这还是要看具体情况。swiper组件是这样的,但是溢出栈错误不只是冲突问题,在实践中慢慢总结即可,遇到问题在网上搜索查找也可以。

    2023-02-04 16:36:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师