vue处理一千张图片进行分页加载

news2024/10/2 16:30:30

vue处理一千张图片进行分页加载

开发过程中,如果后端一次性返回你1000多条图片或数据,那我们前端应该怎么用什么思路去更好的渲染呢?

第一种:我们可以使用分页加载
第二种:我们可以进行懒加载

那我们用第一种方法使用分页加载的方法进行渲染

总数据:
在这里插入图片描述

思路:

//dataList 在data中定义的数组来接收总数居
//imgList 在data中定义的数组来接受页面显示图片的数组
  • 第一步:我们定义一个数组并且将1000条数据赋值给它
  • 第二步:我们先解决分页的问题,我们使用el-pagination组件先给该组件 的"total"、"page"、"limit"分别赋值
  • 第三步:页面初始化的时候,我们首先加载dataList的前十条数据具体代码如下: this.imgList = this.dataList.slice(0,10)
  • 第三步:当我们点击分页时,我们给el-pagination组件添加@pagination事件,在事件的方法中,我们可以获取到当前页面以及当前显示条数
    我们在这个方法中需要给el-pagination组件中"size"、"page"参数赋值,然后在截取dataList在该页面的数据并且给imgList数组进行赋值。
   //获取该页的数据 
	let minNum = (val.page - 1)*val.limit 
   	let maxNum =val.page*val.limit 
   	this.imgList = dataList.slice(minNum,maxNum)

具体代码

//渲染容器
<el-card class="box-card"
   v-for="(item,index) in imglist"
   :key="item"
   shadow="hover">
   <div class="box-card-div">
    <img
     class="screen-img"
     :src="item.img"
     :key="index"
     :alt="item.name"
    />
   	<div class="title">{{ item.name }}</div>
  </div>
</el-card>

//分页
<pagination
  v-show="toggPage.total > 0"
  :total="toggPage.total"
  :page.sync="toggPage.currentPage"
  :limit.sycn="toggPage.size"
  @pagination="togghandleCurrentChange"
 />
//因为业务需求封装的方法
queryImgList(){
	//给页面家了一个loading
	this.imgloading = true
     //获取分页总条数
     this.toggPage.total = this.dataList.length
     //页面初始化时显示的前十条数据
     this.imgList = dataList.slice(0,10)
     this.imgloading = false
},
togghandleCurrentChange(val){
	//如果不知道val可以在这打印
	console.log('val',val)
	this.imgloading = true
	this.toggPage.size = val.limit
	this.toggPage.currentPage = val.page
	//记得将数据先制空在进行赋值,否则你懂的
	this.imgList = []
	//获取当前页面的数据
	let minNum = (val.page - 1)*val.limit
    let maxNum = val.page*val.limit
    this.imgList = this.dataList.slice(minNum,maxNum)
    this.imgloading = false
}

以上就可以完美结果该需求了,因为我们需求更复杂,删了不少代码

如果更想完美可以它加一个模糊查询
我们以图片名称或者某个字段进行查询
思路:

queryImgValue //输入框绑定的值
queryBtn // 查询按钮事件方法名称

  • 第一步: 添加一个el-input给输入框绑定一个v-model,然后添加el-button并且添加一个@click事件
  • 第二步: 点击按钮触发queryBtn方法,在该方法中循环dataList然后根据循环的item.namequeryImgValue进行匹配,如果包含输入的值就push到一个新数组并且给this.imgList进行赋值

具体代码:

queryBtn(){
	//之所以判断是否为空 -----如果用户没有输入直接点击就没必要再去执行下面代码
	if(this.queryImgValue){
		let img = []
		//循环该数据进行匹配
       	this.dataList.forEach(item => {
       	//如果name包含用户输入的名称将该条数据push到新数组中
          if(item.name.includes(this.queryImgValue)){
            img.push(item)
          }
        })
        //赋值给imgList,不要忘记还需要给查询的总条数赋值哟
        this.imglist = img
        this.toggPage.total = this.imglist.length
	}
}

以上就很完美啦!!!

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

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

相关文章

Mysql 与 磁盘交互的过程

从之前的Mysql架构可以了解到&#xff0c;Mysql 客户端不是直接和磁盘打交道&#xff0c;我们在客户端输入的sql语句会被发送给服务端&#xff0c;服务端对sql语句进行解析、缓存等操作&#xff0c;然后再交由存储引擎去读写磁盘。这其实是从 C/S 的角度去了解Mysql。 站在OS的…

jvm如何判断对象已死?

在堆里面存放着各种各类的Java对象&#xff0c;垃圾收集器在对堆进行垃圾回收时&#xff0c;首要就是判断哪些对象还活着&#xff0c;哪些对象已经死去(即不被任何途径引用的对象)。引用计数器算法&#xff1a;引用计数器算法简单概括为&#xff1a;给对象添加一个引用计数器&a…

Java基础面试题——IO和多线程专题

文章目录1.介绍下进程和线程的关系2.说说Java中实现多线程的几种方法3.如何停止一个正在运行的线程4.介绍下线程中的常用方法1.start方法2.run方法3.getName方法4.优先级5.sleep方法6.isAlive7.join8.yield9.wait和notify/notifyAll5.介绍下线程的生命周期6.为什么wait, notify…

什么?30秒生成一个logo

logo 是徽标或者商标的英文说法。logo 承载着企业的无形资产&#xff0c;是企业综合信息传递的媒介。标志作为企业CIS战略的最主要部分&#xff0c;在企业形象传递过程中&#xff0c;是应用最广泛、出现频率最高&#xff0c;同时也是最关键的元素。通过形象的 logo 可以让消费者…

(考研湖科大教书匠计算机网络)第四章网络层-第三节5:IPv4地址的应用规划

获取pdf&#xff1a;密码7281专栏目录首页&#xff1a;【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一&#xff1a;定长的子网掩码FLSM二&#xff1a;变长的子网掩码VLSM本节对应视频如下 【计算机网络微课堂&#xff08;有字幕无背景音乐版&#xff09;】&#x…

笔记本电脑怎么连接无线网wifi?不同电脑系统的使用教程(2023最新)

现在越多人使用笔记本电脑&#xff0c;在我们的日常生活和工作中是很难离开它的。想要更快速地上网&#xff0c;我们都会选择连接无线网的wifi。有时笔记本电脑无法连接网络&#xff0c;你知道这是什么原因吗&#xff1f;笔记本电脑怎么连接无线网wifi&#xff1f;方法很简单&a…

.NET C# 世界日期格式转换为yyyyMMdd

本文分享了一个按照不同国家的语言生成相应时间格式的案例&#xff0c;有需要做国外网站或者多国语言网站的朋友可以参考一下。 本文在引用 【C# DateTime.ToString根据不同语言生成相应的时间格式】基础上做了一个Demo测试&#xff0c;旨在给更多有需要的人能刷到 官方示例&…

蓝奏云网盘下载链接无法打开的解决方法(详解 全)

&#x1f388;前言蓝奏云是一家国内的比较有良心的网盘提供商&#xff0c;提供有不限量的网盘空间&#xff0c;且不限制下载速度&#xff0c;免费用户只限制上传单文件小于100M的文件。算是比较有良心的。而且下载还不用登录才能下载&#xff08;很多标称免费的网盘均需要下载者…

Python进阶篇(二)-- Django 深入模型

上一节提到了Django是基于MVC架构的Web框架&#xff0c;MVC架构追求的是“模型”和“视图”的解耦合。所谓“模型”说得更直白一些就是数据&#xff08;的表示&#xff09;&#xff0c;所以通常也被称作“数据模型”。在实际的项目中&#xff0c;数据模型通常通过数据库实现持久…

阿里云部署SpringBoot项目

目录 步骤1&#xff1a;购买服务器(新用户免费试用一个月) 步骤2&#xff1a;查看服务器相关信息 ​编辑 步骤3&#xff1a;设置安全组 步骤4&#xff1a;远程连接 步骤5&#xff1a;使用FinalShell连接阿里云服务器 步骤6&#xff1a;阿里云服务器上安装JDK ​编辑 步骤7…

Inception Transformer

paper链接: https://arxiv.org/abs/2205.12956v2 code链接: https://github.com/sail-sg/iFormer Inception Transformer一、引言二、实现细节三、实验一、分类二、检测三、分割四、消融实验一、引言 最近的研究表明&#xff0c;Transformer具有很强的建立远程依赖关系的能力…

vAPI:一个自托管的OWASP Top 10漏洞API靶场

关于vAPI vAPI是一款针对OWASP Top 10漏洞的练习靶场&#xff0c;vAPI项目是一个故意引入了多种漏洞的可编程接口API&#xff0c;广大研究人员可以利用vAPI来研究和练习OWASP Top 10漏洞。 工具要求 PHP MySQL PostMan Mitmproxy 工具安装 Docker安装 docker-compose up -d…

Jira和Confluence Server版终止支持倒计时365天,企业应对策略汇总

本文对Atlassian最新的Server版政策进行了解读&#xff0c;并给出应对方案&#xff1b;同时我们也将国内热门的替代工具与jira进行了比较细致的对比&#xff0c;以及介绍替换的优惠政策等。今天是2023年2月15日&#xff0c;距离 Atlassian 旗下 Jira、Confluence 等系列产品中国…

互联网的路由选择协议

互联网的路由选择协议 文章目录互联网的路由选择协议路由选择协议的几个概念分层次路由选择协议内部网关协议RIP协议距离向量算法RIP协议的报文格式内部网关协议OSPFOSPF的报文格式✨OSPF的特点外部网关协议BGPBGP的报文格式参考本篇主要讨论的是路由表中的路由是如何得出来的。…

如何获取 openai ChatGPT的key?(图文教学)

我直接对他进行询问 Q&#xff1a;获取chatptp的key A&#xff1a;对不起&#xff0c;作为ChatGPT&#xff0c;我不具有API密钥或访问凭据。我只是一个已经被训练好的自然语言处理模型&#xff0c;通过输入文本来生成回复。您可以在OpenAI的网站上了解有关他们的API和访问凭据…

Gif动态图片怎样在线生成?一招快速完成gif在线制作

Gif表情包作为日常聊天中必备的气氛调和剂&#xff0c;不仅能够更好的表达出自己的内心情绪&#xff0c;还能够缓解聊天的尴尬。那么&#xff0c;要怎么制作gif表情包呢&#xff1f;下面&#xff0c;介绍两个简单的方法&#xff0c;轻松一键就能在线完成gif制作&#xff08;htt…

Linux安装elasticsearch-head

elasticsearch-head 是一款专门针对于 elasticsearch 的客户端工具&#xff0c;用来展示数据。 elasticsearch-head 是基于 JavaScript 语言编写的&#xff0c;可以使用 Nodejs 下的包管理器 npm 部署。 1 安装Nodejs nodejs下载地址&#xff1a; https://nodejs.org/en/dow…

记一次OOM

1,问题描述&#xff1a; 新上了一版代码之后&#xff0c;上游服务请求我们服务失败&#xff0c;报错&#xff1a;“服务不可用”&#xff0c;发现注册中心上服务掉线&#xff0c;查询日志&#xff1a;发现oom&#xff1a;Java heap space,GC overhead limit exceeded。 容易…

国产电容式触控IC的工作原理及应用

国产电容式触控IC采用CMOS工艺&#xff0c;内建稳压和驱动电路&#xff0c;具有高可靠性、高灵敏度、超低功耗、强稳定性、抗干扰能力强、宽工作电压等方面优点&#xff0c;专为取代光感和传统按键开发而设计。 电容式触控芯片 - CT8225是一款使用电容感应式原理设计的触摸芯片…

Linux_基本指令

新的专栏Linux入门来啦&#xff01;欢迎各位大佬补充指正&#xff01;&#xff01; Linux_基本指令导入文件绝对路径与相对路径隐藏的文件指令ls查看stat查看文件属性cd进入路径mkdir创建目录touch创建文件rm删除man查询手册cp复制mv移动cat查看文件morelessheadtail时间相关的…