vue中如何使用swiper以及解决swiper初始化过早的问题

news2025/3/1 21:19:50

后端的返回的数据用数组接收;

把swiper放到根组件里的mounted,也会出现swiper先初始化,dom再加载的问题:

  • swiper初始化在mounted里执行;
  • setTimeout定时器是从后端请求回来的数据; 
  • 代码执行顺序是:当组件创建完成,就立即执行mounted,然后定义setTimeout定时器也就是(位置“1”),然后初始化swiper(位置“3”),然后是2s之后就开始执行定时器里的回调函数(位置“2”)。
  • 所以还是存在dom还没更新好,就初始化了swiper,效果都没地方加,所以就没效果;

把swiper初始化放在datalist接收到值后?

也不能把swiper初始化放在datalist接收到值后,因为这样出现的问题是:只是datalist状态立即更新了,但是dom更新需要经过:虚拟dom创建、diff对比等过程,是异步更新的;这个时候swiper早就初始化完成了,还会出现过早初始化的问题: 

那把初始化swiper放在哪里呢:

让swiper在生命周期updated阶段初始化;此时updated阶段已经可以拿到最新的dom了:

new Vue({
            el: "#box",
            data: {
                datalist: []
            },

            mounted(){
                //ajax请求回来的数据
                setTimeout(() => {
                    //后端的返回的数据用数组接收
                    this.datalist = ["https://static.maizuo.com/pc/v5/usr/movie/e856bdc65507b99800f22e47801fa781.jpg",
                        "https://p0.pipi.cn/mmdb/25bfd6ddb53c7e5015d23c5bc24d876c03d41.jpg?imageView2/1/w/160/h/220",
                        "https://p0.pipi.cn/mmdb/25bfd692ddd7e13139313954ee2938728ad6a.jpg?imageView2/1/w/160/h/220"]
                }, 2000)

                
            },
            updated(){
                new Swiper(".swiper", {
                    // direction: 'vertical', // 垂直切换选项
                    loop: true, // 循环模式选项

                    // 如果需要分页器
                    pagination: {
                        el: '.swiper-pagination',
                    }
                })
            }  
        })
  • 这样做的话,updated过程dom就已经更新好了,能拿到最新的dom,所以就可以进行swiper初始化,添加效果了。 

但是这样做的缺点是:

(1)没把dom放在组件里无法复用

(2)如果当前页面状态不止datalist一个,当其他状态更新,update就会重新运行,new Swiper会被多次执行,出现bug

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/38765.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Eureka Server配置

01.Eureka Server配置 Eureka Server提供注册服务,各个节点启动后,会在EurekaServer中进行注册,Eureka Server会存储所有可用信息的服务节点,其信息可以在界面中直观的观察到。(服务注册中心 CAP核心理论 一个分布式…

(十六)Spring对事务的支持

文章目录环境事务概述引入事务场景第一步:准备环境第二步:编写持久层第三步:编写业务层第四步:编写Spring配置文件第五步:编写表示层(测试程序)模拟异常Spring对事务的支持Spring事务管理API声明…

mysql-6-主从复制搭建

1 总结 1:主从复制最大缺陷就是延迟。 2 搭建前的准备 2.1复制的基本原则 每个slave只有一个master每个slave只能有一个唯一的服务器ID每个master可以有多个slavemysql版本尽量一致,防止出问题。两台服务能ping通MySQL主从是基于binlog的,主上…

Face Global | 创龙科技2款新品登陆TI全球官网

日前,创龙科技AM62x、AM64x处理器平台齐登TI全球官方网站,向全球TI用户提供高可靠性的工业核心板以及工业评估套件。 图 1 TI全球官网截图-AM64x 图 2 TI全球官网截图-AM62x 创龙科技(Tronlong)作为TI中国官方合作伙伴,自2013年成立以来,已基于TI Sitara、C6000、DaVinci、…

【网络安全必看】如何提升自身WEB渗透能力?

前言 web渗透这个东西学起来如果没有头绪和路线的话,是非常烧脑的。 理清web渗透学习思路,把自己的学习方案和需要学习的点全部整理,你会发现突然渗透思路就有点眉目了。 程序员之间流行一个词,叫35岁危机,&#xf…

OSPF路由策略引入

功能介绍: distribute-list 分发列表,通过distribute-list 工具对路由更新进行控制,只能进行路由条目过滤,不能修改路由的属性。 一、组网要求 在R2上把rip路由重分发进ospf,并且在重分发时进行路由过滤,…

【云原生】Docker-compose单机容器集群编排

内容预知 1.Compose的相关知识 1. Compose的相关概念 2. 为何需要docker-compose docker镜像管理的问题 Docker Compose的解决方案 3. Compose的特征 2. Docker-compose的安装 3. Compose配置常用字段和YAML 文件编写 3.1 YAML 文件格式及编写注意事项 (1&…

[附源码]Python计算机毕业设计儿童闲置物品交易网站

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Java面试题-为什么重写equals就一定要重写hashCode方法呢?

目录 1、为什么要重写equals 方法 2、hashCode 方法 3、为什么要一起重写? 4 原因分析 总结 先放结论: hashCode 和 equals 两个方法是用来协同判断两个对象是否相等的,采用这种方式的原因是可以提高程序插入和查询的速度。如果只重写equ…

第五届传智杯-初赛【A组-题解】

B题: 题目背景 【 题目背景和题目描述的两个题面是完全等价的,您可以选择阅读其中一部分。】 专攻超统一物理学的莲子,对机械结构的运动颇有了解。如下图所示,是一个三进制加法计算器的(超简化)示意图。…

idea,web开发中jsp页面中不提示控制层的请求地址

随着开发的进行,打开spring配置文件会有如下提示 同时工程管理里如下 删掉后,发现打开sping配置文件不告警了,可是jsp页面中也没有了地址的提示 这个提示没有了 正确的做法是删掉Spring Application Context 因为其他配置文件都导入App…

Java_接口

目录 1.接口的语法规则 2.接口使用 3.接口特性 4.实现多个接口 1)下面通过类来表示一组动物; 2)另外再提供一组接口, 分别表示 "会跑的", "会飞的", "会游泳的"; 3)接下来我们创建…

黑马点评--达人探店

查看探店笔记: private void queryBlogUser(Blog blog) {Long userId blog.getUserId();User user userService.getById(userId);blog.setName(user.getNickName());blog.setIcon(user.getIcon()); }Override public Result queryBlogById(Long id) {//1.查询blo…

首1标准型和尾1标准型

目录 (1)系统的传递函数; (2) 系统的增益; (3) 系统的特征根及相应的模态; (4) 画出对应的零极点图; (5) 求系统的单位脉冲响应&#…

Linux下JAVA使用JNA调用C++的动态链接库(g++或者gcc编译的.so文件)

目录 前言 一、准备工作 二、JAVA项目加载JNA 三、JNA的使用 3.1 生成.so文件 3.1.1 gcc生成的.so 3.1.2 g生成的.so 3.2 JNA调用.so 四、JAVA与C的类型对应 五、总结 前言 在没上班之前,我曾在CSDN写过《程序员的自我修养》的读书…

Centos7下载安装Tomcat应用服务器

Centos7安装Apache-Tomcat-9 文章目录Centos7安装Apache-Tomcat-91. 前言2. 官网下载Apache-Tomcat3. 使用xftp工具或者rz工具传输文件4. 解压Tomcat文件并启动Tomcat文件5. 关闭防火墙并访问Apache-Tomcat6. 可以修改端口号7. 开放端口1. 前言 Apache-Tomcat服务器是一个免费的…

Android 开发人脸识别之自动识别验证码功能讲解及实现(超详细 附源码)

需要源码和图片集请点赞关注收藏后评论区留下QQ或者私信~~~ 一、自动识别验证码 验证码图片中最简单的是数字验证码,一张再普通不过的验证码拿到之后要进行以下步骤的处理 1:首先对图片适当裁剪,先去掉外部的空白区域,再把每个数…

Oracle日志复制—国产自研Beedup(基于日志结构化数据复制产品)

Beedup能够实现大量交易数据的实时捕捉、变换和投递,实现源数据库与目标数据库的数据同步,保持亚秒级的数据延迟。 一、Beedup产品概述 由北京灵蜂纵横软件有限公司研发的数据库实时复制软件Beedup,提供数据库Oracle异地容灾备份&#xff0…

Vue笔记_01双向数据绑定原理

[1]什么叫双向数据绑定? 视图中的数据发生了变化,data中的数据也要对应改变;data中的数据发生了变化,视图上的数据也要对应改变; [2]双向绑定原理 vue 双向数据绑定是通过 数据劫持 结合 发布订阅模式的方式来实现的…

Pip版本问题导致Python模块安装失败

文章目录起因解决方案前言输入 %APPDATA%创建 pip.ini终端执行命令安装包结语起因 今天在视频号平台看到有小姐姐直播讲爬虫技术,我一看这不是挺简单的吗?于是我就想到自己四年前的今天刚进大一的时候最开始学的爬虫技术,后来因为一些事情跑…