当前位置: 首页 > news >正文

【vue2】el-select,虚拟滚动(vue-virtual-scroller)

需求背景​​​​​​

vue2+element-ui项目中,当el-select中数据量较大时(超出5000个dom节点),会导致页面加载和渲染卡顿、el-select下拉列表延迟展开。

在现在的el-select的基础上使用分页或者虚拟列表的形式去处理大量的下拉菜单,可以保证页面的正常渲染及el-select的正常回显。

需求分析

主要涉及几个点:

1、下拉菜单主体实现虚拟展示,保证渲染效率
2、展开和关闭时要保证已选中的选项在虚拟列表内,保证回显的是 label,而不是 value
3、select 清空时,虚拟列表回归到顶部
4、下拉菜单发生改变时,重新计算滚动条长度,并回归到顶部
5、支持搜索、多选、disabled、collapse-tags场景。

完整代码

安装虚拟列表插件vue-virtual-scroller,我这边安装的是^1.1.2版本。

 封装组件virtualSelect.vue

<template><div><el-selectpopper-class="virtualselect"class="virtual-select-custom-style":value="defaultValue":filterable="field.props.filterable":filter-method="filterMethod":default-first-option="field.props.defaultFirstOption":popper-append-to-body="false":placeholder="$t(field.placeholder)":disabled="field.props.disabled":clearable="field.props.clearable":multiple="field.props.multiple":collapse-tags="field.props.collapseTags"v-bind="$attrs"@visible-change="visibleChange"v-on="$listeners"@clear="clearChange"@focus="focusChange"@change="selectChange"><div v-if="selectArr.length > 0" class="scroll-list-box"><RecycleScrollerref="virtualList":style="'height:' + calcScrollHeight() + 'px;'"class="scroller":items="selectArr":item-size="itemHeight":buffer="buffer":key-field="value"><template #default="{ item }"><el-option:key="item[value]":label="item[label]"

相关文章:

【vue2】el-select,虚拟滚动(vue-virtual-scroller)

需求背景​​​​​​ vue2+element-ui项目中,当el-select中数据量较大时(超出5000个dom节点),会导致页面加载和渲染卡顿、el-select下拉列表延迟展开。 在现在的el-select的基础上使用分页或者虚拟列表的形式去处理大量的下拉菜单,可以保证页面的正常渲染及el-select的…...

【ETCD】[源码阅读]深度解析 EtcdServer 的 processInternalRaftRequestOnce 方法

在分布式系统中&#xff0c;etcd 的一致性与高效性得益于其强大的 Raft 协议模块。而 processInternalRaftRequestOnce 是 etcd 服务器处理内部 Raft 请求的核心方法之一。本文将从源码角度解析这个方法的逻辑流程&#xff0c;帮助读者更好地理解 etcd 的内部实现。 方法源码 …...

【RabbitMQ】RabbitMQ中核心概念交换机(Exchange)、队列(Queue)和路由键(Routing Key)等详细介绍

博主介绍&#xff1a;✌全网粉丝21W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

【AI知识】过拟合、欠拟合和正则化

一句话总结&#xff1a; 过拟合和欠拟合是机器学习中的两个相对的概念&#xff0c;正则化是用于解决过拟合的方法。 1. 欠拟合&#xff1a; 指模型在训练数据上表现不佳&#xff0c;不能充分捕捉数据的潜在规律&#xff0c;导致在训练集和测试集上的误差都很高。欠拟合意味着模…...

计算机毕设-基于springboot的航空散货调度系统的设计与实现(附源码+lw+ppt+开题报告)

博主介绍&#xff1a;✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围&#xff1a;Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…...

视图、转发与重定向、静态资源处理

目录 视图 默认视图 视图机制原理 自定义视图 请求转发与重定向 静态资源处理 视图 每个视图解析器都实现了 Ordered 接口并开放出一个 order 属性 可以通过 order 属性指定解析器的优先顺序&#xff0c;order 越小优先级越高 默认是最低优先级&#xff0c;Integer.MAX_…...

优选算法——分治(快排)

1. 颜色分类 题目链接&#xff1a;75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; 题目展示&#xff1a; 题目分析&#xff1a;本题其实就要将数组最终分成3块儿&#xff0c;这也是后面快排的优化思路&#xff0c;具体大家来看下图。 这里我们上来先定义了3个指针&…...

【Linux系统】文件系统

Windows 和 Linux 的文件系统&#xff1a; windows:NTFS —> NTFS&#xff1a;磁盘大于目录&#xff1a;目录是磁盘的一部分。ubuntu :EXT4 —> EXT4: 目录大于磁盘&#xff1a;磁盘是目录的一部分。 Windows文件系统的特点 基于分区的文件系统&#xff1a; Windows…...

javaweb的基础

文章的简介&#xff1a; 页面的展示&#xff08;HTML&#xff09;页面的修改、绑定、弹窗(js的dom、bom等)页面的请求(Ajax) 1、在HTML中用标签和css样式实现了浏览器页面。 2、用JS实现页面内容&#xff08;图片&#xff0c;复选框、文本颜色内容&#xff09;的修改和弹框&…...

家里养几条金鱼比较好?

金鱼&#xff0c;作为备受喜爱的家庭水族宠物&#xff0c;其饲养数量一直是众多养鱼爱好者关注的焦点。究竟养几条金鱼最为适宜&#xff0c;实则需要综合考量多方面因素&#xff0c;方能达到美观、健康与和谐的理想养鱼境界。 从风水文化的视角来看&#xff0c;金鱼数量有着诸…...

写作词汇积累:差池、一体两面、切实可行极简理解

差池 【差池】可以是名词&#xff0c;是指意外的事或错误。 【差池】也可以是形容词&#xff0c;是指参差不齐、差劲或不行。 1. 由于操作不当&#xff0c;导致这次实验出现了【差池】&#xff0c;我们需要重新分析原因并调整方案。&#xff08;名词&#xff0c;表示意外的事…...

移远EC200A-CN的OPENCPU使用GO开发嵌入式程序TBOX

演示地址&#xff1a; http://134.175.123.194:8811 admin admin 演示视频&#xff1a; https://www.bilibili.com/video/BV196q2YQEDP 主要功能 WatchDog 1. 守护进程 2. OTA远程升级 TBOX 1. 数据采集、数据可视化、数据上报&#xff08;内置Modbus TCP/RTU/ASCII,GPS协…...

LEED绿色建筑认证最新消息

关于LEED绿色建筑认证的最新消息&#xff0c;可以从以下几个方面进行概述&#xff1a; 一、认证体系更新与发展 LEED认证体系不断更新和完善&#xff0c;以更好地适应全球绿色建筑的发展趋势。例如&#xff0c;LEED v4能源更新已通过投票&#xff0c;并于2024年3月1日全面启用…...

SpringBoot中集成常见邮箱中容易出现的问题

本来也没打算想写得。不过也是遇到一些坑&#xff0c;就记录一下吧&#xff0c;也折腾了小半天 1.maven配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>2…...

webstorm开发uniapp(从安装到项目运行)

1、下载uniapp插件 下载连接&#xff1a;Uniapp Tool - IntelliJ IDEs Plugin | Marketplace &#xff08;结合自己的webstorm版本下载&#xff0c;不然解析不了&#xff09; 将下载到的zip文件防在webstorm安装路径下&#xff0c;本文的地址为&#xff1a; 2、安装uniapp插…...

C# 探险之旅:第七节 - 条件判断(三元判断符):? : 的奇妙冒险

嘿&#xff0c;勇敢的探险家们&#xff01;欢迎来到 C# 编程世界的奇妙之旅的第七节。今天&#xff0c;我们要探索的是一个神秘而强大的宝藏——三元判断符 ? :。别怕&#xff0c;它听起来复杂&#xff0c;但实际上比找宝藏还简单&#xff01; 场景设定&#xff1a;宝藏的选择…...

FlinkCDC实战:将 MySQL 数据同步至 ES

&#x1f4cc; 当前需要处理的业务场景: 将订单表和相关联的表(比如: 商品表、子订单表、物流信息表)组织成宽表, 放入到 ES 中, 加速订单数据的查询. 同步数据到 es. 概述 1. 什么是 CDC 2. 什么是 Flink CDC 3. Flink CDC Connectors 和 Flink 的版本映射 实战 1. 宽表查…...

debug小记

红框&#xff1a; 步过&#xff1a;遇到方法不想进入方法 绿框&#xff1a;代码跑在第几行也可以看见 蓝框&#xff1a;可以显示变量的值&#xff0c;三种方式都可以看变量的值...

Qt C++ 显示多级结构体,包括结构体名、变量名和值

文章目录 mainwindow.hmainwindow.cppstructures.hmain.cpp QTreeView 和 QStandardItemModel 来实现。以下是实现这一功能的步骤和示例代码&#xff1a; 定义多级结构体&#xff1a; 假设你有一个多级结构体&#xff0c;如下所示&#xff1a; struct SubStruct {int subValue…...

【JAVA】旅游行业中大数据的使用

一、应用场景 数据采集与整合&#xff1a;全面收集旅游数据&#xff0c;如客流量、游客满意度等&#xff0c;整合形成统一数据集&#xff0c;为后续分析提供便利。 舆情监测与分析&#xff1a;实时监测旅游目的地的舆情信息&#xff0c;运用NLP算法进行智能处理&#xff0c;及…...

TimerBlox:基于电流基准的硬件定时新方案,替代555与MCU

1. 项目概述&#xff1a;重新认识定时电路的设计范式在嵌入式系统、电源管理、电机控制乃至各类信号发生器的设计中&#xff0c;定时功能几乎无处不在。无论是生成一个精确的PWM波去调节LED亮度&#xff0c;还是产生一个可调的时钟信号驱动VCO&#xff0c;亦或是需要一个精准的…...

从YOLOv8到Heatmap:手把手教你搭建一个景区人员拥挤预警系统(含完整代码)

从YOLOv8到Heatmap&#xff1a;手把手教你搭建一个景区人员拥挤预警系统&#xff08;含完整代码&#xff09; 每到旅游旺季&#xff0c;景区管理者最头疼的问题之一就是如何有效监控人流密度&#xff0c;预防踩踏事故。传统的人工监控方式不仅效率低下&#xff0c;而且难以及时…...

【职场】那些把公司当家的人,最先被扫地出门

那些把公司当家的人&#xff0c;最先被扫地出门“你爱公司爱得越深&#xff0c;离开的时候就摔得越惨。因为公司从一开始&#xff0c;就没打算和你谈感情。”一、那种人&#xff0c;你一定见过 他是第一个到公司的&#xff0c;也是最后一个离开的。 他的工位永远是最乱的那个&a…...

基于AI编程前沿技术,主题为变形金刚:手脑协同 + 触发指令 + AI大数据落地系统,目前落地解决方案

变形金刚:手脑协同 + 触发指令 + AI大数据落地系统 一、系统架构总览 这个变形金刚系统以“多重控制融合”为核心,将手/脑/语音三条控制通道汇聚到同一个AI大脑,实现对人形机器人/机械结构的实时操控: ┌───────────────────────────────…...

TegraRcmGUI完整指南:Windows上最简单快速的Switch注入工具教程

TegraRcmGUI完整指南&#xff1a;Windows上最简单快速的Switch注入工具教程 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是Windows平台上最简…...

弹球打砖块

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0, user-scalableno"><title>弹球打砖块</title><…...

ElevenLabs声音库资源推荐,从免费层到企业级Tier 4权限全解锁:含3个已下架但仍在灰度测试的传奇音色

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs声音库资源推荐 ElevenLabs 提供了业界领先的高质量语音合成服务&#xff0c;其声音库涵盖多语种、多风格及可定制化角色音色。官方声音库分为三类&#xff1a;预置语音&#xff08;Prebuilt…...

告别NuWriter!手把手教你用命令行打包新唐NUC980 SPI NAND完整系统镜像

新唐NUC980 SPI NAND量产化镜像构建实战指南 在嵌入式设备量产过程中&#xff0c;传统烧录方式往往成为效率瓶颈。当面对新唐NUC980这类基于SPI NAND的工控设备时&#xff0c;产线工程师常需要反复切换工具链、分步烧录不同组件&#xff0c;不仅耗时费力&#xff0c;还容易因人…...

基于加速度计与舵机的自由落体检测滑翔机设计与实现

1. 项目概述&#xff1a;一个基于自由落体检测的自动减速滑翔机如果你对嵌入式硬件、传感器应用或者简单的物理模型感兴趣&#xff0c;那么这个项目绝对能让你玩上一下午。它的核心想法非常直观&#xff1a;我们利用一块内置了加速度计的微控制器板&#xff08;Circuit Playgro…...

从标注工具到AI流水线:在Windows上搭建CVAT,并连接Label Studio与Jupyter Notebook

从标注工具到AI流水线&#xff1a;在Windows上构建CVAT与生态工具的协同工作流 当计算机视觉项目从实验室走向生产环境时&#xff0c;数据标注往往成为制约迭代速度的关键瓶颈。传统孤立使用的标注工具如同信息孤岛&#xff0c;而现代MLOps实践需要的是能够无缝衔接数据标注、质…...