解决 Element

您所在的位置:网站首页 vue渲染大量数据时卡顿卡死解决方法 解决 Element

解决 Element

2024-07-09 14:08:24| 来源: 网络整理| 查看: 265

业务场景:服务端返回两万多条数据需要在下拉框中展示,直接渲染会导致页面卡顿且需要很长时间等待,用户体验极差,所以我们把这个el-select优化一下,直接上代码。

相关知识传送门: Vue实现自定义指令(directive)及应用场景 Vue中 实现函数的防抖、节流及应用场景

export default { data() { return { chooseValue: "", options: [], rangeNumber: 10, }; }, methods: { getList() { // 测试数据25000条数据, 这里数据多少条无所谓,options.slice(0, rangeNumber)方法只会默认加载初始的10条数据 for (let i = 0; i label: "选择"+i,value:"选择"+i}); } }, loadMore(n) { // n是默认初始展示的条数会在渲染的时候就可以获取,具体可以打log查看 // elementui下拉超过7条才会出滚动条,如果初始不出滚动条无法触发loadMore方法 return () => (this.rangeNumber += 5); // 每次滚动到底部可以新增条数 可自定义 }, }, beforeMount() { this.getList(); }, directives:{ 'el-select-loadmore':(el, binding) => { // 获取element-ui定义好的scroll盒子 const SELECTWRAP_DOM = el.querySelector(".el-select-dropdown .el-select-dropdown__wrap"); if(SELECTWRAP_DOM){ SELECTWRAP_DOM.addEventListener("scroll", function () { /** * scrollHeight 获取元素内容高度(只读) * scrollTop 获取或者设置元素的偏移值, * 常用于:计算滚动条的位置, 当一个元素的容器没有产生垂直方向的滚动条, 那它的scrollTop的值默认为0. * clientHeight 读取元素的可见高度(只读) * 如果元素滚动到底, 下面等式返回true, 没有则返回false: * ele.scrollHeight - ele.scrollTop === ele.clientHeight; */ const condition = this.scrollHeight - this.scrollTop var _this = this; var args = arguments; if (timer) clearTimeout(timer); timer = setTimeout(function () { fn.apply(_this, args); }, delay); }; } export { _debounce } import {_debounce} from '@/utils/index.js' export default { data() { return { chooseValue: "", options: [], rangeNumber: 10, resOptions:[], }; }, methods: { // 模拟获取大量数据 getList() { // 测试数据15000条数据, 这里数据多少条无所谓,options.slice(0, rangeNumber)方法只会默认加载初始的10条数据 for (let i = 0; i label: "选择"+i,value:"选择"+i}); } }, loadMore(n) { // n是默认初始展示的条数会在渲染的时候就可以获取,具体可以打log查看 // elementui下拉超过7条才会出滚动条,如果初始不出滚动条无法触发loadMore方法 return () => (this.rangeNumber += 5); // 每次滚动到底部可以新增条数 可自定义 }, // 筛选方法 filterMethod:_debounce(function(filterVal){ if(filterVal){ let filterArr = this.resOptions.filter((item)=>{ return item.label.toLowerCase().includes(filterVal.toLowerCase()) }) this.options = filterArr; }else{ this.options = this.resOptions; } },500), // 下拉框出现时,调用过滤方法 visibleChange(flag){ if(flag){ this.filterMethod() } }, }, beforeMount() { this.getList(); }, directives:{ 'el-select-loadmore':(el, binding) => { // 获取element-ui定义好的scroll盒子 const SELECTWRAP_DOM = el.querySelector(".el-select-dropdown .el-select-dropdown__wrap"); if(SELECTWRAP_DOM){ SELECTWRAP_DOM.addEventListener("scroll", function () { /** * scrollHeight 获取元素内容高度(只读) * scrollTop 获取或者设置元素的偏移值, * 常用于:计算滚动条的位置, 当一个元素的容器没有产生垂直方向的滚动条, 那它的scrollTop的值默认为0. * clientHeight 读取元素的可见高度(只读) * 如果元素滚动到底, 下面等式返回true, 没有则返回false: * ele.scrollHeight - ele.scrollTop === ele.clientHeight; */ const condition = this.scrollHeight - this.scrollTop


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭