iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Vue使用swiper问题怎么解决
  • 872
分享到

Vue使用swiper问题怎么解决

2023-07-06 03:07:15 872人浏览 八月长安
摘要

本文小编为大家详细介绍“Vue使用swiper问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue使用swiper问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、下载指定版本swipe

本文小编为大家详细介绍“Vue使用swiper问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue使用swiper问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、下载指定版本swiper

npm i swiper@5.2.0

二、创建轮播图组件CarouselContainer.vue

详细解析在代码注释中

<template>  <div    class="CarouselContainer"    @mouseenter="stopAutoPlay"    @mouseleave="startAutoPlay"  >    <div ref="mySwiper" class="swiper-container" :id="currentIndex">      <div class="swiper-wrapper">        <div          class="swiper-slide my-swiper-slide"          v-for="(item, index) of slideList"          :key="index"        >          {{ item }}        </div>      </div>      <!-- 分页器 -->      <!-- <div class="swiper-pagination"></div> -->      <!--导航器-->      <div class="swiper-button-prev"></div>      <div class="swiper-button-next"></div>    </div>  </div></template><script>import Swiper from "swiper";import "swiper/CSS/swiper.css";export default {  name: "CarouselContainer",  props: ["slideList", "currentIndex"],  data() {    return {      currentSwiper: null,    };  },  watch: {    //slide数据发生变化时,更新swiper    slideList: {      deep: true,      // eslint-disable-next-line      handler(nv, ov) {        console.log("数据更新了");        this.updateSwiper();      },    },  },  mounted() {    this.initSwiper();  },  methods: {    //鼠标移入暂停自动播放    stopAutoPlay() {      this.currentSwiper.autoplay.stop();    },    //鼠标移出开始自动播放    startAutoPlay() {      this.currentSwiper.autoplay.start();    },    //初始化swiper    initSwiper() {      // eslint-disable-next-line      let vueComponent = this; //获取vue组件实例      //一个页面有多个swiper实例时,为了不互相影响,绑定容器用不同值或变量绑定      this.currentSwiper = new Swiper("#" + this.currentIndex, {        // 循环模式选项loop,默认为false,可动态设置,当slide只有一页时置为false,>1页时置为true        loop: true, // 循环模式选项        autoHeight: "true", //开启自适应高度,容器高度由slide高度决定        //分页器        // pagination: {        //   el: '.swiper-pagination',        //   clickable:true,//分页器按钮可点击        // },        //grabCursor: true, //小手掌抓取滑动        // direction: "vertical", // 纵向滚动,默认是横向滚动的        on: {          //此处this为swiper实例          //切换结束获取slide真实下标          slideChangeTransitionEnd: function () {            console.log(vueComponent.$props.currentIndex+"号swiper实例真实下标",this.realIndex)          },          //绑定点击事件,解决loop:true时事件丢失          // eslint-disable-next-line          click: function (event) {            console.log("你点击了"+vueComponent.$props.currentIndex+"号swiper组件")          },        },        //导航器        navigation: {          nextEl: ".swiper-button-next",          prevEl: ".swiper-button-prev",        },        autoplay: {          //自动播放,不同版本配置方式不同          delay: 2000,          stopOnLastSlide: false,          disableOnInteraction: false, // 用户操作之后是否停止自动轮播默认true        },        slidesPerView: 1, //视口展示slide数1        slidesPerGroup: 1, //slide数1页一组      });    },    //销毁swiper    destroySwiper() {      try {      // 此处destroy(bool1,bool2)      // bool1代表是否销毁swiper实例      // bool2代表是否销毁swiper样式(导航器、分页器等)        this.currentSwiper.destroy(true, false);      } catch (e) {        console.log("删除轮播");      }    },    //更新swiper(先销毁 再 重新初始化swiper)    updateSwiper() {      this.destroySwiper();      this.$nextTick(() => {        this.initSwiper();      });    },  },  // 组件销毁之前 销毁 swiper 实例  beforeDestroy() {    this.destroySwiper();  },};</script><style scoped lang="scss">.CarouselContainer {  width: 100%;  height: 100%;  background-color: gray;}.my-swiper-slide {  height: 300px;  background-color: pink;}.swiper-container {  width: 700px;  border: 1px solid red;}//   //   ::v-deep(.swiper-pagination-bullet-active){//     background-color: #d5a72f !important;//     width: 20px;//   }//   //   ::v-deep(.swiper-pagination-bullet){//     background-color: #9624bf;//     opacity: 1;//     width: 20px;//   }</style>

三、创建父组件Father.vue渲染多个swiper组件、模拟异步数据变化

<template>  <div class="father">    <!--传递不同的currentIndex 作为区分不同swiper组件的动态id-->    <CarouselContainer :slide-list="list" currentIndex="1"></CarouselContainer>    <CarouselContainer :slide-list="list" currentIndex="2"></CarouselContainer>    <button @click="changeData">更换数据喽</button>  </div></template><script>import CarouselContainer from './components/CarouselContainer.vue'export default {  components: {    CarouselContainer,  },  data(){    return{      list:['a','b','c']    }  },  methods: {    changeData(){    const swiperList = ['我是图片1','我是图片2','我是图片3'];    this.list = swiperList ;    }  }}</script><style scoped></style>

完成之后就可以在你的项目中看到效果啦,之后可以根据项目需求去改进&hellip;

修改

此处追加说明destroy()释放swiper实例的几种情况:

解决问题:内存增长

此处destroy(bool1,bool2)

  • bool1代表是否销毁swiper实例

  • bool2代表是否销毁swiper样式(导航器、分页器等)

情景一:如果只更新swiper里面的数据,destroy(true,false)

情景二:如果要销毁(跳转路由销毁组件,遍历重新new一个swiper实例)swiper实例,destroy(true,true)

读到这里,这篇“Vue使用swiper问题怎么解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: Vue使用swiper问题怎么解决

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

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

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

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

下载Word文档
猜你喜欢
  • Vue使用swiper问题怎么解决
    本文小编为大家详细介绍“Vue使用swiper问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue使用swiper问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、下载指定版本swipe...
    99+
    2023-07-06
  • vue中使用swiper失效问题及解决
    目录vue使用swiper失效问题描述问题解决vue2+swiper踩坑记 effect等参数无效总结vue使用swiper失效 问题描述 需求是 要在一个循环的列表中第一组数据后添...
    99+
    2023-01-14
    vue使用swiperm swiperm失效问题 vue使用swiper失效
  • 解决vue中使用swiper 插件出错的问题
    由于我自己在写一个demo时候用到了该插件,出现了一些问题,所以就简单查了一下该插件的用法以及一些常见的错误 1.出现Get .../maps/swiper.min.js.map 5...
    99+
    2024-04-02
  • vue3中使用swiper遇到的问题怎么解决
    这篇文章主要介绍了vue3中使用swiper遇到的问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue3中使用swiper遇到的问题怎么解决文章都会有所收获,下面我们一起来看看吧。一、安装swipe...
    99+
    2023-07-06
  • Vue swiper怎么使用
    这篇“Vue swiper怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue s...
    99+
    2024-04-02
  • Vue怎么使用Swiper
    这篇文章主要介绍了Vue怎么使用Swiper的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue怎么使用Swiper文章都会有所收获,下面我们一起来看看吧。1、引入swipernpm i s...
    99+
    2023-07-02
  • Vue中引入swiper报错的问题及解决
    目录首先上报错信息下载swiper6.x版本首先上报错信息 -----------更新------------------------------------------- 都是由于...
    99+
    2022-11-13
    Vue引入swiper swiper报错 Vue引入swiper报错
  • vue使用Swiper踩坑解决避坑
    目录我的Swiper定义:报错信息:保留默认名class:swiper-container查看GitHub我的Swiper定义: Failed to execute 'get...
    99+
    2023-05-20
    vue Swiper踩坑解决 vue Swiper避坑
  • Vue使用swiper问题(5.2.0版本,避免踩坑)
    目录一、下载指定版本swiper二、创建轮播图组件CarouselContainer.vue三、创建父组件Father.vue渲染多个swiper组件、模拟异步数据变化总结Vue使用...
    99+
    2023-05-15
    Vue使用swiper swiper5.2.0版本 Vue使用swiper5.2.0
  • vue中ref的使用问题怎么解决
    本文小编为大家详细介绍“vue中ref的使用问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue中ref的使用问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue的ref(this.$r...
    99+
    2023-06-29
  • vue里swiper会遇到什么问题
    这篇文章给大家分享的是有关vue里swiper会遇到什么问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实例: 错误(无法显示出分页器按钮,此功能不适用与for循环出来的图片,...
    99+
    2024-04-02
  • 如何解决vue引入新版vue-awesome-swiper插件填坑问题
    这篇文章主要介绍了如何解决vue引入新版vue-awesome-swiper插件填坑问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。问题为...
    99+
    2024-04-02
  • 同时使用swiper和echarts遇到的问题如何解决
    今天小编给大家分享一下同时使用swiper和echarts遇到的问题如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。项...
    99+
    2023-07-06
  • Vue router应用问题怎么解决
    这篇文章主要讲解了“Vue router应用问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue router应用问题怎么解决”吧!问题记录路由守卫的应用根据...
    99+
    2023-06-30
  • 解决vue中less的使用问题
    1.安装less依赖:npm install less less-loader --save 2.修改webpack.base.config.js文件,配置loader加载依赖,让...
    99+
    2024-04-02
  • vue3中使用swiper及遇到的问题解析
    目录一、安装swiper二、使用swiper三、echarts+swiper一、安装swiper 使用npm install swiper安装swpier插件 npm install...
    99+
    2023-05-15
    vue3使用swiper vue3 swiper
  • Vue使用Swiper的案例详解
    Vue使用Swiper看这一篇就够了 此案例实现需求 完成swiper动态异步数据下的slide渲染自定义分页器样式解决loop:true设置时的事件丢失问题swiper鼠标移入/移...
    99+
    2024-04-02
  • vue跨域问题怎么解决
    1、可以在后端服务器中进行配置,允许指定的域名或IP地址访问后端API,这样就可以解决跨域问题。常用的方法是在服务器端添加CORS(...
    99+
    2023-05-13
    vue跨域问题 vue
  • vue缓存问题怎么解决
    Vue缓存问题可以通过以下几种方式来解决:1. 使用路由的meta信息:在路由配置中,可以设置meta信息,包括是否需要缓存组件等。...
    99+
    2023-05-23
    vue缓存问题 vue
  • vue使用echarts图表自适应问题怎么解决
    在Vue中使用ECharts图表时,可以通过监听窗口大小变化,动态调整图表的大小以实现自适应。具体步骤如下: 在Vue组件中引入E...
    99+
    2024-03-08
    vue echarts
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作