如何在 Vue 中为 Swiper.js 正确启用导航按钮与分页器

浅敏君_1503

浅敏君_1503

2026-09-19

749人浏览

原创

如何在 Vue 中为 Swiper.js 正确启用导航按钮与分页器

Swiper.js 的 navigation 和 pagination 功能需显式导入对应模块并传入 modules 数组,仅设置布尔或配置对象而不引入模块将导致功能失效。

swiper.js 的 navigation 和 pagination 功能需显式导入对应模块并传入 `modules` 数组,仅设置布尔或配置对象而不引入模块将导致功能失效。

在 Vue 项目中集成 Swiper.js 时,一个常见误区是认为只要通过 `:navigation="true"` 或 `:pagination="{clickable: true}"` 就能自动启用对应 UI 组件——但实际上,Swiper v9+(当前主流版本)采用模块化架构,**所有高级功能(如导航箭头、分页器、滚动条、懒加载等)都必须作为独立模块显式导入并注册到 `:modules` prop 中**,否则即使配置正确,DOM 元素也不会渲染,交互逻辑亦不生效。

✅ 正确做法如下:

  1. 导入所需模块:除 SwiperSwiperSlide 外,还需从 "swiper"(非 "swiper/vue")导入 NavigationPagination 模块;EffectCreative 同样应从 "swiper" 导入(注意命名无 Swiper 前缀);
  2. 注入 modules 数组:将模块数组通过 :modules 绑定至 <swiper></swiper> 组件,顺序无关,但缺一不可;
  3. 保持配置 props 不变:navigation="true":pagination 配置项仍需保留,它们负责启用对应模块的运行时行为与样式逻辑。

完整可运行示例:

<template><swiper class="rounded-xl text-xs w-[95%]" :modules="[EffectCreative, Navigation, Pagination]" :slides-per-view="2" :space-between="20" :navigation="true" :pagination="{ clickable: true, dynamicBullets: true }" :autoplay="{ delay: 3000, disableOnInteraction: true }"><swiperslide v-for="(product, index) in data" :key="index" class="py-6"><productcard :data="product"></productcard></swiperslide></swiper></template><script setup>
import { Swiper, SwiperSlide } from 'swiper/vue';
import { EffectCreative, Navigation, Pagination } from 'swiper';
</script>

⚠️ 注意事项:

抖音下载器(Node.js)
抖音下载器(Node.js)

抖音无水印视频下载和文案提取工具

下载
  • 若使用 <script setup></script> 语法(推荐),请确保模块导入路径正确("swiper" 是核心模块包,"swiper/vue" 仅提供组件封装);
  • 不要混淆 SwiperNavigationSwiperPagination 等旧版命名 —— Swiper v9+ 已统一为 Navigation / Pagination
  • 导航按钮默认插入到 .swiper 容器外部(前后各一个),分页器默认插入底部居中;若自定义位置,可通过 CSS 调整 .swiper-button-next/.prev.swiper-pagination 类;
  • 如需响应式控制(例如小屏隐藏导航),建议结合 :navigation="{ enabled: isDesktop }" 动态绑定,而非仅靠 CSS display: none,以避免事件监听器残留。

总结:Swiper 的模块化设计提升了打包体积可控性,但也要求开发者主动“连接”功能与实现。牢记「配置 + 模块导入」双到位原则,即可稳定启用导航与分页能力。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

4026

5

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

2023.07.04

1029

3

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

2023.07.04

3904

6

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

2023.09.01

820

4

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.04

1696

5

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

2023.09.04

2965

4

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

2023.09.12

3853

6

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

2023.09.20

2440

5

java访问控制修饰符介绍
java访问控制修饰符介绍

java访问控制修饰符有四种,分别是public、protected、private、默认访问修饰符。详细介绍:1、public,public是最宽松的访问控制修饰符,被修饰的类、方法和变量可以被任何其他类访问,当一个类、方法或变量被声明为public时,它们可以在任何地方被访问,无论是同一个包中的类还是不同包中的类;2、protected修饰符等等。

2023.09.20

808

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app快速上手
uni-app快速上手

共0课时 | 0人学习

Vue 教程
Vue 教程

共42课时 | 16.6万人学习

Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 2.4万人学习