iview select组件在大数据情况下虚拟加载处理方式

   select 组件在几千上万条数据的时候特别卡,调试发现option组件渲染太多,导致整个页面都卡,通过调研发现可以通过虚拟加载的方式动态渲染option,亲测上万数据一点都不卡,废话不说,上代码

虚拟加载用的是 vue-virtual-scroller 具体怎么安装和使用,这就不介绍,网上一大把,下面是select结合 vue-virtual-scroller 的代码,由于option上包了一成代码,会导致select选中的样式不会自动加上,需要手动在option上加上选中样式

 <Select v-model="nodeData.fileUniqueList" multiple filterable filter-by-labelref="select"@on-query-change="fileQueryChange"style="width:100%"><recycle-scrollerclass="virtual-list":buffer="200":prerender="10"style="height: 180px":item-size="30"key-field="value":items="fileList"><template v-slot="{ item, index }"><Option:class="{'ivu-select-item selected':nodeData.fileUniqueList.includes(item.value)}":value="item.value" :key="item.value" :label="item.fileName">{{ item.fileName }}</Option></template></recycle-scroller></Select>

在 mounted 中把select的自动过滤方法重写,这一步很关键,没这一步会导致搜索的option被强制重写,这样永远都渲染不出来数据
 

 this.$nextTick(() => {// 替换过滤函数this.$refs.select.validateOption = () => true;});

然后就是自定义查询方法,通过 on-query-change事件自己写过滤方法,我这是先把查出来的数据备份了一份,然后在备份的数据里面查找在深度拷贝给对象

fileQueryChange(v) {if (v) {let data = deepClone(this.fileListBak.filter(f => f.fileName.indexOf(v) >= 0))this.fileList = data} else {this.fileList = deepClone(this.fileListBak)}},

最后就是返现问题,由于动态渲染不会把所有的option都渲染出来,导致不能返现,调试了下发现多选的时候,select组件是在values里面plus值,所以在数据返回后,循环以前选中的,然后查找,最后给values赋值,这是多选的方式,单选应该也是大同小异,如果不行,去调试一下看单选是怎么赋值的

    this.$refs.select.values = []this.nodeData.fileUniqueList.forEach(f => {let data = this.fileList.find(d => d.value == f)this.$refs.select.values.push({label: data.fileName,tag: undefined,value: f})})

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

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

相关文章

Jenkins部署python接口自动化测试

一、点击新建Item 二、指定源码和分支 私钥位置&#xff1a;C:\Users\Administrator\.ssh 文件下 三、构建脚本编写 四、构建后操作 指定输出的allure 结果目录 总结&#xff1a; 感谢每一个认真阅读我文章的人&#xff01;&#xff01;&#xff01; 作为一位过来人也是希望…

Python开发——工具篇 Pycharm的相关配置,Python相关操作 持续更新

前言 本篇博客是python开发的工具篇相关&#xff0c;介绍pycharm的使用和相关配置&#xff0c;收录python的相关操作&#xff0c;比如如何启动jupyter。 目录 前言引出Pycharmpycharm如何不同等级日志显示不同颜色设置不同pycharm的python环境 Python操作如何启动Jupyter 总结…

Pt100 和 Pt1000 传感器:重要事实和差异

许多行业使用 RTD 来测量温度&#xff0c;大多数这些设备中的传感器都是 Pt100 或 Pt1000。这两种温度传感器具有相似的特性&#xff0c;但它们标称电阻的差异可能决定您为您的应用选择哪一种。 电阻温度检测器(RTD) 也称为电阻温度计&#xff0c;由于其可靠性、准确性、多功…

【linux】信号——信号产生

信号产生 1.预备知识2.信号产生2.1通过键盘发送信号2.2系统调用接口向进程发送信号2.3硬件异常产生信号2.4软件条件2.5总结 自我名言&#xff1a;只有努力&#xff0c;才能追逐梦想&#xff0c;只有努力&#xff0c;才不会欺骗自己。 喜欢的点赞&#xff0c;收藏&#xff0c;关…

unity程序中的根目录

在unity程序中如果要解析或保存文件时&#xff0c;其根目录为工程名的下一级目录&#xff0c;也就是Assets同级的目标

【error:Custom elements in iteration require ‘v-bind:key‘ directives】元素绑定:key

在vue3中使用v-for操作的时候&#xff0c;报error Custom elements in iteration require v-bind:key directives 当我想自定义绘制echarts图的代码&#xff1a; <el-row><div v-if"data.chartDataList.length > 0"><el-col :span"12&quo…

Linux——GPT生成Web代码并进行Linux端部署

先生成代码 https://usemage.ai/ 下载zip到本地Linux 参考文档&#xff1a; https://wasp-lang.dev/docs/quick-start#requirements 安装nvm&#xff1a; sudo apt install gcc g下载&#xff1a; curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install…

《松弛感》读后感

1.精神富足&#xff0c;是一个向外联接和向内探索的的过程 富足的人生&#xff0c;就意味着要“有能力信任他人”及“清楚自己喜欢什么” ——《松弛感》加藤谛三 著 2.反思&#xff1a;活成自己喜欢的的模样 失败并非悲剧&#xff0c;只有当个体在意他人如何看待失败的自己时&…

PTA:编程实现strncpy函数功能(C语言)

题目 本题要求编程实现“n"族字符串拷贝函数功能strncpy()&#xff0c;而不使用标准库自带函数。 函数接口定义&#xff1a; char *MyStrNcpy(char *dst, const char *src, int n); 此函数把字符串src中的前n个字符复制到到dst所指向的内存空间。 &#xff08;1&#xff…

c/c++ 非托管环境 和 C#/JAVA 托管环境编译的基本原理

纯C/C的程序通常运行在一个非托管环境中&#xff0c;类是由头文件&#xff08;.h&#xff09;和实现文件&#xff08;.cpp&#xff09;组成&#xff0c;每个类形成了一个单独的编译单元&#xff0c;当我们编译程序时&#xff0c;几个基本组件会把我们的源代码翻译成二进制代码。…

WPF中DataGrid解析

效果如图&#xff1a; 代码如下&#xff1a; <DataGrid Grid.Row"1" x:Name"dataGrid" ItemsSource"{Binding DataList}" AutoGenerateColumns"False"SelectedItem"{Binding SelectedItem,UpdateSourceTriggerPropertyChange…

【开题报告】海洋多源数据质量控制应用服务的WebServer设计与实现

开 题 报 告 内 容 论文选题的意义、主要研究内容和文献资料调研情况 一、选题意义 在当今世界研究自然环境的大背景下&#xff0c;计算机技术与各学科、各领域的综合应用逐渐增多。作为地球上最广阔的水体&#xff0c;同时也是地球上决定气候发展的主要的因素之一&#xff0…

android13(T) 客制化预置语言列表

效果图 需求分析 这个列表界面一般都是后来手动添加后才现实的&#xff0c;通过分析源码发现通过如下值可控 adb shell settings get system system_locales zh-CN,ja-JP,en-AT 所以只需查询出这个值&#xff0c;然后加在 SettingProvider 中即可 隐藏 bug 如果客户要求默…

马骑顿部署实在RPA,所产价值超该项目投入6倍

“数字化最大的挑战在于我们增长太快了&#xff0c;对于全域经营的DTC品牌来说&#xff0c;让一个部门去管理所有平台数据&#xff0c;形成品牌全域生意的协同实非易事。”马骑顿运营部负责人表示。2022年&#xff0c;马骑顿搭建企业数据中台&#xff0c;统一管理线上数据&…

C++ day43 最后一块石头的重量 目标和 一和零

题目1&#xff1a;1049 最后一块石头的重量 题目链接&#xff1a;最后一块石头的重量 对题目的理解 整数数组stone[i]表示第i块石头的重量&#xff0c;每次从中选出任意两块石头(x<y)粉碎 如果两块石头重量相等&#xff0c;就会被完全粉碎&#xff1b;如果不等&#xff…

c语言 / typedef和define之间的区别

1. 举例 typedef int size_4&#xff1b;//size_4 等同于int#define size_4 int&#xff1b;//size_4 会被int替换 2.区别 typedef属于类型重定义&#xff0c;define属于宏替换define只能替换基类型&#xff0c;typedef可以重定义任何复杂的数据类型define发生在预处理阶段&…

实在品牌墙又双叒叕扩容,数十家龙头品牌签约实在RPA

近日&#xff0c;“实在智能 华夏行”数智化赋能之旅火爆前行&#xff0c;为孩子王、视客眼镜、心海伽蓝、洁丽雅、诗裴丝、视贝、博纳泉、鑫荣懋、艾莱得、布诗等数十家优秀企业带来超自动化智能解决方案&#xff0c;帮助商家解决重复低效工作&#xff0c;降低运营成本&#x…

ERROR: [pool www] please specify user and group other than root

根据提供的日志信息&#xff0c;PHP-FPM 服务未能启动的原因是配置文件中的一个错误。错误消息明确指出了问题所在&#xff1a; [29-Nov-2023 14:28:26] ERROR: [pool www] please specify user and group other than root [29-Nov-2023 14:28:26] ERROR: FPM initialization …

RFC4493——AES-CMAC

文章目录 Abstract1 Introduction2 Specification of AES-CMAC2.1 Basic Definitions2.2 Overview2.3 Subkey Generation Algorithm2.4 MAC Generation Algorithm2.5 MAC Verification Algorithm 3 Security Considerations4 Test Vectors5 测试代码5.1 C语言版本5.2 Python语言…

34.基于webpack搭建开发环境

一、webpack配置问题 webpack确实强大&#xff0c;但是配置loader、plugin也确实存在与node、npm、webpack版本之间存在冲突的问题&#xff08;真正的从入门到放弃&#xff09;。为了方便平时的开发&#xff0c;我基于webpack4.x 整合了react、vue3、ts开发环境&#xff0c;支持…