广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue使用Swiper封装轮播图组件的方法详解
  • 830
分享到

Vue使用Swiper封装轮播图组件的方法详解

2024-04-02 19:04:59 830人浏览 八月长安
摘要

目录Swiper为什么要封装组件开始封装1.下载安装Swiper2.引入CSS样式文件3.引入js文件4.把官网使用方法中的html结构复制粘贴过来5.初始化Swiper自定义效果完

Swiper

Swiper是一个很常用的用于实现各种滑动效果的插件,PC端和移动端都能很好的适配。

官网地址:www.swiper.com.cn/

目前最新版本是Swiper7,但众所周知最新版本通常不稳定,所以这里使用Swiper6来封装。

Swiper各版本区别:

为什么要封装组件

因为网页中通常不止一个地方需要用到轮播图,所以直接将轮播图封装成一个共用组件,性能会更好,修改起来也可以快速找到位置。

开始封装

1.下载安装Swiper

 npm install Swiper@6            // @6 是指定版本号为6 的意思
 cnpm install Swiper@6
 yarn add Swiper@6

2.引入css样式文件

import "swiper/swiper-bundle.min.css";

3.引入js文件

import Swiper from 'swiper/swiper-bundle'

4.把官网使用方法中的HTML结构复制粘贴过来

官网使用方法

注意:

  • 下面不是官网使用文档的代码,是我改动过的!
  • 这里的顶层容器类名,不对应的话,后面出大问题!!!

这里官网的使用方法上的容器类名是swiper,对应Swiper7

但因为这里我下载的是Swiper6,所以我改成了它对应的容器类名swiper-container

Swiper6及其以前的版本都是对应类名swiper-container

// 注意这里容器的类名!!
<div class="swiper-container" ref='Carousel'>       
    <div class="swiper-wrapper">
        //v-for循环生成轮播图片
        <div class="swiper-slide" v-for="Carousel in list" :key="Carousel.id">
            <img :src="Carousel.imgUrl" />
      </div>
    </div> 

    <!-- 如果需要分页器 -->
    <div class="swiper-pagination"></div> 

    <!-- 如果需要导航按钮 --> 
    <div class="swiper-button-prev"></div> 
    <div class="swiper-button-next"></div> 

    <!-- 如果需要滚动条 --> 
    <div class="swiper-scrollbar"></div>
</div>

5.初始化Swiper

初始化时间:有图片数据后

但是轮播图的图片通常都是从后台获取回来的,需要确定页面有数据并且DOM结构完全生成后,再初始化。所以最好的方法是: watch监听 + $nextTick

$nextTick: 将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。

原理:watch监听图片数据的变化,$nextTick等到DOM结构完全生成后,立即初始化

watch: {
//list是轮播图数据
    list: {
      immediate: true,   //页面初始化的时候就调用一次handler()
      handler() {
        this.$nextTick(() => {
          var mySwiper = new Swiper(this.$refs.Carousel, {
            direction: "horizontal", // 水平切换选项
            loop: true, // 循环模式选项

            // 如果需要分页器
            pagination: {
              el: ".swiper-pagination",
              clickable: true,     //可点击
              type: "bullets",     //默认样式 小圆点, 还可选其他形状
            },

            // 如果需要前进后退按钮
            navigation: {
              nextEl: ".swiper-button-next",
              prevEl: ".swiper-button-prev",
            },
          });
        });
      },
    },
  }

自定义效果

  • 上面的样式结构是我自定义过的,不是原本的官方使用文档,初次使用建议先复制官网的看看
  • 如果不需要按钮/分页器/滚动栏,可以自己在HTML结构和初始化代码中删减
  • 如果想要其他的滑动效果,可以看看官网其他示例进行选择
  • 如果想要改变具体样式或者配置,可以看看官方api

完整代码

封装的组件名叫Carousel

<template>
  <div class="swiper-container" ref='Carousel'>
    <div class="swiper-wrapper">
      <div class="swiper-slide" v-for="Carousel in list" :key="Carousel.id">
        <img :src="Carousel.imgUrl" />
      </div>
    </div>
    <!-- 如果需要分页器 -->
    <div class="swiper-pagination"></div>

    <!-- 如果需要导航按钮 -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>
  </div>
</template>

<script>
// 引入swiper的js
import Swiper from "swiper/swiper-bundle.js";
import "swiper/swiper-bundle.min.css";

export default {
  name: "Carousel",
  props: ["list"],
  watch: {
    list: {
      immediate: true,
      handler() {
        this.$nextTick(() => {
          var mySwiper = new Swiper(this.$refs.Carousel, {
            direction: "horizontal", // 垂直切换选项
            loop: true, // 循环模式选项

            // 如果需要分页器
            pagination: {
              el: ".swiper-pagination",
              clickable: true,
              type: "bullets",
            },

            // 如果需要前进后退按钮
            navigation: {
              nextEl: ".swiper-button-next",
              prevEl: ".swiper-button-prev",
            },
          });
        });
      },
    },
  },
};
</script>

<style></style>

效果展示

到此这篇关于Vue使用Swiper封装轮播图组件的方法详解的文章就介绍到这了,更多相关Vue Swiper封装轮播图内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue使用Swiper封装轮播图组件的方法详解

本文链接: https://www.lsjlt.com/news/166883.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue使用Swiper封装轮播图组件的方法详解
    目录Swiper为什么要封装组件开始封装1.下载安装Swiper2.引入css样式文件3.引入js文件4.把官网使用方法中的HTML结构复制粘贴过来5.初始化Swiper自定义效果完...
    99+
    2022-11-13
  • vue3封装轮播图组件的方法
    目的 封装轮播图组件,直接使用,具体内容如下 大致步骤 准备my-carousel组件基础布局,全局注册 准备home-banner组件,使用my-carousel...
    99+
    2022-11-12
  • 微信小程序swiper轮播图组件使用方法详解
    本文实例为大家分享了微信小程序swiper轮播图组件的使用,供大家参考,具体内容如下 在components中新建文件夹swiper components/swiper/swiper...
    99+
    2022-11-13
  • 怎么使用vue轮播组件vue-awesome-swiper实现轮播图
    这篇文章主要讲解了“怎么使用vue轮播组件vue-awesome-swiper实现轮播图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用vue轮播组件vue-awesome-swipe...
    99+
    2023-07-04
  • Vue实现轮播图组件的封装
    目录轮播图功能-获取数据轮播图-通用轮播图组件轮播图-数据渲染轮播图-逻辑封装轮播图功能-获取数据 目标: 基于pinia获取轮播图数据 核心代码: (1)在types/data.d...
    99+
    2023-05-16
    Vue轮播图组件封装 Vue组件封装
  • vue的vue-awesome-swiper轮播图插件怎么使用
    这篇文章主要讲解了“vue的vue-awesome-swiper轮播图插件怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue的vue-awesome-swiper轮播图插件怎么使用...
    99+
    2023-07-04
  • vue使用swiper插件实现轮播图的示例
    目录vue - 使用swiper插件实现轮播图 使用watch与$nextTick解决轮播的Bug hello大家好,最近我在做一个仿饿了么的项目,我会将我的项目经验同步到这里,与大...
    99+
    2022-11-12
  • Vue图片放大镜组件的封装使用详解
    基于Vue的图片放大镜组件封装,供大家参考,具体内容如下 图片放大镜的实现过程是将一个小图放置在一个盒子里,当鼠标在小图盒子里移动时,出现一个移动块(阴影区域/遮罩层),右侧大图片盒...
    99+
    2022-11-12
  • vue+elementUI面包屑组件封装方法详解
    本文实例为大家分享了vue+elementUI面包屑组件封装的具体代码,供大家参考,具体内容如下 一.选择用哪种样式 二.在组件文件夹下创建组件 三.在Bread.vue复制如下...
    99+
    2022-11-13
  • Vue封装通过API调用的组件的方法详解
    目录前言封装通过API调用的组件的设计思路封装组件的方式单例模式定义单例模式的优缺点1、优点2、缺点单例模式适用场景使用API调用组件的示例拓展:父子组件通信最后前言 在前端开发中,...
    99+
    2022-12-26
    前端vue封装api然后调用 vue api封装 vue中组件封装
  • Vue实现可复用轮播组件的方法
    本文用vue简单的实现了一个轮播图的基础功能,并抽离出来作为一个公共组件,方便复用 html和js部分 <template>   <div     class="i...
    99+
    2022-09-27
  • vuev-viewer组件使用示例详解(v-viewer轮播图)
    目录v-viewer轮播图效果图组件介绍插件安装补充:v-viewer的使用(vue)v-viewer轮播图 效果图 Bandicam(录制视频)+soogif(视频转成gif) ...
    99+
    2023-02-09
    vue v-viewer组件使用 vue v-viewer组件 v-viewer轮播图
  • vue封装图片滑块验证组件的方法
    本文实例为大家分享了vue封装图片滑块验证组件的具体代码,供大家参考,具体内容如下 滑块验证组件整体不难,主要在于设置图片的样式问题,想要让背景图充满div,就需要滑块图片也跟随等比...
    99+
    2022-11-13
  • 使用JSX实现Carousel轮播组件的方法(前端组件化)
    在我们用 JSX 建立组件系统之前,我们先来用一个例子学习一下组件的实现原理和逻辑。这里我们就用一个轮播图的组件作为例子进行学习。轮播图的英文叫做 Carousel,它有一个旋转木马...
    99+
    2022-11-12
  • vue中手动封装iconfont组件解析(三种引用方式的封装和使用)
    目录准备封装unicode引用封装font-class引用封装symbol引用封装引入全局引入局部引入使用在线使用 有时候会因网络问题影响用户体验;直接放在 本地使用 ,如果过多使用...
    99+
    2022-11-13
  • 如何在vue中更优雅的封装第三方组件详解
    目录一、需求场景描述二、关键技术点介绍1.v-bind="$attrs"2.v-on="$listeners"三、封装el-image的代码示...
    99+
    2022-11-13
  • Vue使用v-model封装el-pagination组件的详细步骤
    这篇文章主要介绍“Vue使用v-model封装el-pagination组件的详细步骤”,在日常操作中,相信很多人在Vue使用v-model封装el-pagination组件的详细步骤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...
    99+
    2023-06-20
  • 详解怎么使用vue封装一个自定义日历组件
    执行这个方法之后,此时calendarProps的值为:4、根据日历属性生成日历日期的数据当我们已经知道本月第一天对应的周几索引值、本月一共有多少天和上个月一共有多少天这三个核心数据之后,就可以开始生成对应的日历数据了。思路如下:由于大部分...
    99+
    2023-05-14
    Vue.js 数据可视化 前端
  • vue滑动解锁组件使用方法详解
    本文实例为大家分享了vue滑动解锁组件的使用,供大家参考,具体内容如下 这是一个pc端的滑动解锁组件 效果图: 话不多说,直接上代码 html部分 <template>...
    99+
    2022-11-13
  • Vue滑块解锁组件使用方法详解
    本文实例为大家分享了Vue滑块解锁组件的使用,供大家参考,具体内容如下 依据 JS拖动滑块验证 开发的 Vue 滑块解锁组件。 <template>   <div ...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作