Vue项目引用Swiper组件报错Module not found ./swiper.scss和./vue/swiper-vue

引用Swiper组件片段代码

import { Autoplay, Scrollbar } from 'swiper';
import { Swiper, SwiperSlide } from 'swiper/vue/swiper-vue';
import 'swiper/swiper.scss';

出现如下报错,提示引用错误
在这里插入图片描述
解决方法:

import { Autoplay, Scrollbar } from 'swiper';
import { Swiper, SwiperSlide } from 'swiper/vue';
import 'swiper/scss';

参考连接:
https://stackoverflow.com/questions/69301757/unable-to-run-swiperjs-in-next-js-module-not-found-package-path-swiper-scss

<template> <div> <div class="swiper"> <div class="swiper-wrapper"> <div class="swiper-slide"> <a href="#"> <img src="../../assets/img/banner.png" alt=""> </a> </div> <div class="swiper-slide"> <a href="#"> <img src="../../assets/img/banner.png" alt=""> </a> </div> <div class="swiper-slide"> <a href="#"> <img src="../../assets/img/banner.png" alt=""> </a> </div> <div class="swiper-slide"> <a href="#"> <img src="../../assets/img/banner.png" alt=""> </a> </div> <div class="swiper-slide"> <a href="#"> <img src="../../assets/img/banner.png" alt=""> </a> </div> <div class="swiper-slide"> <a href="#"> <img src="../../assets/img/banner.png" alt=""> </a> </div> </div> <div class="swiper-pagination"></div> </div> </div> </template> <script setup> import Swiper from "swiper"; import 'swiper/swiper-bundle.css'; import {Navigation,Pagination,Autoplay} from 'swiper/modules'; import {ref,nextTick} from "vue"; // Swiper.use([Navigation,Pagination,Autoplay]) //初始化swiper 有循环 有分页器 有自动轮播 nextTick(() => { new Swiper('.swiper', { modules: [Navigation, Pagination, Autoplay], loop: true, pagination: { el: '.swiper-pagination', clickable: true, }, autoplay: { delay: 3000, disableOnInteraction: false, }, }); }); </script> <style scoped lang="scss"> .swiper { width: 100%; height: 648px; z-index: 1; .swiper-slide a img { width: 100%; height: 100%; } :deep(.swiper-pagination-bullet) { width: 14px; height: 14px; border-radius: 50%; background-color: #ccc8c8; margin: 0 16px 98px 16px; opacity: 0.8; } /* 修改当前激活的分页器圆点样式 */ :deep(.swiper-pagination-bullet-active) { background-color: #FFFFFF; opacity: 1; } } </style>问题依旧存在
最新发布
10-24
原代码存在的主要问题是在 Swiper 7 及以上版本中,`Swiper.use` 方法已被弃用,应使用组件式的方式引入模块。以下是修正后的代码: ```vue <template> <div> <div class="swiper"> <div class="swiper-wrapper"> <div class="swiper-slide"> <a href="#"> <img src="../../assets/img/banner.png" alt=""> </a> </div> <div class="swiper-slide"> <a href="#"> <img src="../../assets/img/banner.png" alt=""> </a> </div> <div class="swiper-slide"> <a href="#"> <img src="../../assets/img/banner.png" alt=""> </a> </div> <div class="swiper-slide"> <a href="#"> <img src="../../assets/img/banner.png" alt=""> </a> </div> <div class="swiper-slide"> <a href="#"> <img src="../../assets/img/banner.png" alt=""> </a> </div> <div class="swiper-slide"> <a href="#"> <img src="../../assets/img/banner.png" alt=""> </a> </div> </div> <div class="swiper-pagination"></div> </div> </div> </template> <script setup> import Swiper from "swiper"; import 'swiper/swiper-bundle.css'; import { Navigation, Pagination, Autoplay } from 'swiper/modules'; import { ref, nextTick } from "vue"; nextTick(() => { new Swiper('.swiper', { modules: [Navigation, Pagination, Autoplay], loop: true, pagination: { el: '.swiper-pagination', clickable: true, }, autoplay: { delay: 3000, disableOnInteraction: false, }, }); }); </script> <style scoped lang="scss"> .swiper { width: 100%; height: 648px; z-index: 1; .swiper-slide a img { width: 100%; height: 100%; } :deep(.swiper-pagination-bullet) { width: 14px; height: 14px; border-radius: 50%; background-color: #ccc8c8; margin: 0 16px 98px 16px; opacity: 0.8; } :deep(.swiper-pagination-bullet-active) { background-color: #FFFFFF; opacity: 1; } } </style> ``` 上述代码将 `Swiper.use` 方法替换为 `modules` 选项来引入所需的模块,从而解决了分页器不跟随图片滚动改变的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值