el-select 分页加载

el-select 分页加载

  • el-select 分页懒加载
    • 监听的指令——loadMore
    • 指令的使用

el-select 分页懒加载

针对数据量大的选择器,需要分页从后端接口获取数据,前端监听选择器下拉框的滚动事件,当往下滚动至底部一定位置时,调接口

监听的指令——loadMore

import Vue from 'vue'
Vue.directive('loadMore', {bind(el, binding) {let value = ''el.addEventListener('input', function() {value = el.querySelector('.el-select__input').value})// 获取滚动页面DOMconst SCROLL_DOM = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap')let scrollPosition = 0SCROLL_DOM.addEventListener('scroll', function() {// 当前的滚动位置 减去  上一次的滚动位置// 如果为true则代表向上滚动,false代表向下滚动const flag= this.scrollTop - scrollPosition > 0// 记录当前的滚动位置scrollPosition = this.scrollTop// 记录滚动位置距离底部的位置,在滚动位置距离滚动页面底部一定高度时在触发,例如距页面底部只有100px时触发loadMore事件const LIMIT_HEIGHT= 10const scrollBottom = this.scrollHeight - (this.scrollTop + this.clientHeight) < LIMIT_HEIGHTconst { loadMore } = binding.value;// 如果已达到指定位置则触发// 如果向下滚动 并且距离底部只有10pxif (flag && scrollBottom) {// 将滚动行为告诉组件loadMore(flagToDirection, value)}// 如果是向上滚动  并且距离顶部只有100px//if (!flag&& this.scrollTop < LIMIT_HEIGHT) {//  loadMore(flagToDirection, value)//}})}
})

指令的使用

<el-selectv-model="value"v-load-more="{ loadMore }":remote-method="val => searchList(val)":loading="loading"remotefilterablemultipleplaceholder="请选择"@visible-change="pageIndex = 1"><el-option v-for="item in list" :key="item" :label="item.label" :value="item.value"></el-option></el-select>searchList(value,pageIndex = 1, pageSize = 10) {//更新下拉数据时,重置分页参数this.pageIndex = 1;//将分页参数传至接口setTimeout(()=>{this.list = [];})
}
loadMore(flag, value) {flag && this.searchList(value, ++this.pageIndex);
}
没有做成虚拟滚动的原因其实就是没有必要弄那么复杂,懒加载的方式对于用户来说更友好,同时减轻开发成本

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

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

相关文章

银河麒麟V10 QtCreator安装配置说明(断网离线)

文章目录 1.安装要求:2.安装Qt1.安装要求: 拥有Qt软件安装包qt5.12-arm链接:https://pan.baidu.com/s/1FJerT6SckfjABxAn60rsrA?pwd=mfi6 提取码:mfi6 2.安装Qt 1)拷贝Qt软件包qt5.12-arm至系统/home/kylin/桌面 2)安装Qt软件包 cd /home/kylin/qt5.12-arm/桌面 su…

小研究 - 基于解析树的 Java Web 灰盒模糊测试(一)

由于 Java Web 应用业务场景复杂, 且对输入数据的结构有效性要求较高, 现有的测试方法和工具在测试Java Web 时存在测试用例的有效率较低的问题. 为了解决上述问题, 本文提出了基于解析树的 Java Web 应用灰盒模糊测试方法. 首先为 Java Web 应用程序的输入数据包进行语法建模创…

Flutter:gsy_flutter_demo项目学习——布局切换动画、列表滑动监听、列表滑动到指定位置、高斯模糊

前言 gsy_flutter_demo是一个关于各种小案例和小问题的方案解决。项目是由flutter大佬恋猫de小郭维护的 项目地址&#xff1a;https://github.com/CarGuo/gsy_flutter_demo 感兴趣的可以看一下大佬的文章&#xff1a;Flutter完整开发实战详解系列&#xff0c;GSY Flutter 系…

[SQL挖掘机] - 窗口函数 - lag

介绍: lag() 是一种常用的窗口函数&#xff0c;它用于获取某一行之前的行的值。它可以用来在结果集中的当前行之前访问指定列的值。 用法: lag() 函数的语法如下&#xff1a; lag(列名, 偏移量, 默认值) over (partition by 列名1, 列名2, ... order by 列名 [asc|desc], .…

非凸科技受邀参加中科大线上量化分享

7月30日&#xff0c;非凸科技受邀参加由中国科学技术大学管理学院学生会、超级量化共同组织的“打开量化私募的黑箱”线上活动&#xff0c;分享量化前沿以及求职经验&#xff0c;助力同学们拿到心仪的offer。 活动上&#xff0c;非凸科技量化策略负责人陆一洲从多个角度分享了如…

485modbus转profinet网关连三菱变频器modbus通讯触摸屏监控

本案例介绍了如何通过485modbus转profinet网关连接威纶通与三菱变频器进行modbus通讯。485modbus转profinet网关提供了可靠的连接方式&#xff0c;使用户能够轻松地将不同类型的设备连接到同一网络中。通过使用这种网关&#xff0c;用户可以有效地管理和监控设备&#xff0c;从…

【华秋干货铺】PCB布线技巧升级:高速信号篇

如下表所示&#xff0c;接口信号能工作在8Gbps及以上速率&#xff0c;由于速率很高&#xff0c;PCB布线设计要求会更严格&#xff0c;在前几篇关于PCB布线内容的基础上&#xff0c;还需要根据本篇内容的要求来进行PCB布线设计。 高速信号布线时尽量少打孔换层&#xff0c;换层优…

hash 模式和 history 模式的实现原理

hash 模式和 history 模式的实现原理&#xff1a; #后面的 hash 值的变化不会导致浏览器向服务器发出请求&#xff0c;浏览器不发出请求&#xff0c;就不会刷新页面。通过监听 hashchange 事件的变化可以知道 hash 值发生了哪些变化&#xff0c;然后根据 hash 值的变化来实现更…

vue 3.0 + element-ui MessageBox弹出框的 让文本框显示文字 placeholder

inputPlaceholder:请填写理由, 方法实现如下: this.$prompt(, 是否确认&#xff1f;, { confirmButtonText: 确定, cancelButtonText: 取消, inputPlaceholder:请填写理由, }).then(({ value }) > { if(value null || value ""){ Message({message: 请填…

卷积神经网络【图解CNN】

文章目录 1.卷积运算2.池化3.全连接层 卷积神经网络可以看作一个函数或者黑箱&#xff0c;输入就是图片的像素阵列&#xff0c;输出就是这个图片是什么&#xff1f; 图片是X&#xff0c;那么就输出‘x’&#xff0c;图片是‘O’,那么就输出O&#xff1b; 在计算机眼中&#xff…

如何制作VR全景地图,VR全景地图可以用在哪些领域?

引言&#xff1a; 随着科技的迅速进步&#xff0c;虚拟现实&#xff08;VR&#xff09;技术正逐渐渗透到各个领域。VR全景地图作为其中的重要应用之一&#xff0c;为人们提供了身临其境的全新体验。 一.什么是VR全景地图&#xff1f; VR全景地图是一种利用虚拟现实技术&…

Sprint Boot学习路线5

Spring MVC Spring MVC是Spring框架的一部分&#xff0c;是一个Web应用程序框架。它旨在使用Model-View-Controller&#xff08;MVC&#xff09;设计模式轻松构建Web应用程序。 在Spring MVC中&#xff0c;应用程序被分为三个主要组件&#xff1a;Model、View和Controller。M…

怎样做好字幕翻译服务?

我们知道&#xff0c;字幕泛指影视作品后期加工的文字&#xff0c;往往显示在电视、电影、舞台作品中。字幕翻译就是将外国影片配上本国字幕或者是将本国影片配上外国字幕。那么&#xff0c;字幕翻译的主要流程是什么&#xff0c;怎样做好字幕翻译服务&#xff1f; 据了解&…

【mysql复习】——单表查询知识复习

很喜欢一句话&#xff1a;这个世上只有一种真正的英雄主义&#xff0c;就是你认清了生活的真相&#xff0c;却仍然热爱它&#xff1b; 目录 条件查询&#xff08;查询满足条件的数据&#xff09; 注意点: 在学习数学公式以及排序等关键字时&#xff0c;首先你要明白他们使用在…

Android 向系统日历添加日程提醒事件

Android 向系统日历添加日程提醒事件 1.权限申请 <uses-permission android:name"android.permission.READ_CALENDAR" /> <uses-permission android:name"android.permission.WRITE_CALENDAR" /> 注意&#xff1a;6.0 以上需要申请权限才可…

企业既要用u盘又要防止u盘泄密怎么办?

企业在日常生产生活过程中&#xff0c;使用u盘交换数据是最企业最常用也是最便携的方式&#xff0c;但是在使用u盘的同时&#xff0c;也给企业的数据保密工作带来了很大的挑战&#xff0c;往往很多情况下企业的是通过u盘进行数据泄漏的。很多企业采用一刀切的方式&#xff0c;直…

【Kubernetes】

目录 一、Kubernetes 概述1、K8S 是什么&#xff1f;2、为什么要用 K8S?3、Kubernetes 集群架构与组件 二、核心组件1、Master 组件2、Node 组件3、K8S创建Pod的工作流程&#xff1f;&#xff08;重点&#xff09;4、K8S资源对象&#xff08;重点&#xff09;5、Kubernetes 核…

iOS数字转为图片

根据数字&#xff0c;转成对应的图片 - (void)viewDidLoad {[super viewDidLoad];[self testNum2String:10086]; }/// 根据数字&#xff0c;显示对应的图片 数字用特定的图片显示 - (void)testNum2String:(NSInteger)num {UIView *numContentView [[UIView alloc] initWithFr…

flask------请求拓展

flask中也有类似与django中的中间件&#xff0c;只不过是另一种写法&#xff0c;但是他们的作用是一样的&#xff0c;下面我们就一一介绍&#xff1a; 1.before_request 作用 : before_request 相当于 django 中的 process_request&#xff0c;每一个请求在被处理前都会经…

JAVA环境变量配置(windows)

windows配置环境变量&#xff08;大小写不区分&#xff09;&#xff1a; 新建JAVA_HOME&#xff1a;jdk的根目录 D:\Java\jdk1.8.0_71Path&#xff08;必须&#xff09;%JAVA_HOME%\bin新建&#xff08;类路径&#xff09;CLASSPATH: .;D:\Java\jdk1.8.0_71\lib(或者.;%JAVA_HO…