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

基于 Element UI 适用于 Vue 2 版本的虚拟列表选择器组件el-select

背景:在某些使用情况下,单个选择器可能最终加载数万行数据。 将这么多的数据渲染至 DOM 中可能会给浏览器带来负担,从而造成性能问题。 ——vue3+element-plus有现成的轮子。而vue2+element-ui没有。
以下 文章大部分 摘自 源组件中的README.md

Select V2 虚拟列表选择器

基于 Element UI适用于 Vue 2 版本的虚拟列表选择器组件。

在线演示

在线演示

使用说明

安装

npm i el-select-v2 -S

全局引入

  //全局引入import ElSelectV2 from 'el-select-v2';Vue.use(ElSelectV2);

局部引入

<template><el-select-v2 v-model="value" :options="options" />
</template><script>//局部引入import ElSelectV2 from 'el-select-v2'export default {components: {ElSelectV2 },data() {return {options: [],value: '',};},created() {for (let i = 0; i < 10000; i++) {this.options.push({value: `value ${i + 1}`,label: `label ${i + 1}`,});}},};
</script>

插槽的使用

<template><el-select-v2v-model="student"placeholder="请选择学生"filterable:options="dataList"value-key="studentId"label-key="studentName"><template #default="{ item }"><span>{{ item.studentName }}哈哈哈</span></template></el-select-v2>
</template><script>//局部引入import ElSelectV2 from 'el-select-v2'export default {components: {ElSelectV2 },data() {return {dataList: [],student: '',};},created() {for (let i = 0; i < 10000; i++) {this.dataList.push({studentId: `value ${i + 1}`,studentName: `label ${i + 1}`,});}},};
</script>

示例代码

示例代码

Select Attributes

参数说明类型可选值默认值
value / v-model绑定值boolean / string / number
options列表数据array
value-keyvalue 键名stringvalue
label-keylabel 键名stringlabel
min-item-size每个选项的最小高度number34
multiple是否多选booleanfalse
disabled是否禁用booleanfalse
size输入框尺寸stringmedium/small/mini
clearable是否可以清空选项booleanfalse
collapse-tags多选时是否将选中值按文字的形式展示booleanfalse
multiple-limit多选时用户最多可以选择的项目数,为 0 则不限制number0
nameselect input 的 name 属性string
autocompleteselect input 的 autocomplete 属性stringoff
placeholder占位符string请选择
filterable是否可搜索booleanfalse
allow-create是否允许用户创建新条目,需配合 filterable 使用booleanfalse
filter-method自定义搜索方法function
remote是否为远程搜索booleanfalse
remote-method远程搜索方法function
loading是否正在从远程获取数据booleanfalse
loading-text远程加载时显示的文字string加载中
no-match-text搜索条件无匹配时显示的文字,也可以使用 slot="empty" 设置string无匹配数据
no-data-text选项为空时显示的文字,也可以使用 slot="empty" 设置string无数据
popper-classSelect 下拉框的类名string
reserve-keyword多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词booleanfalse
default-first-option在输入框按下回车,选择第一个匹配项。需配合 filterableremote 使用booleanfalse
popper-append-to-body是否将弹出框插入至 body 元素。在弹出框的定位出现问题时,可将该属性设置为 falsebooleantrue
automatic-dropdown对于不可搜索的 Select,是否在输入框获得焦点后自动弹出选项菜单booleanfalse

Select Events

事件名称说明回调参数
change选中值发生变化时触发目前的选中值
visible-change下拉框出现/隐藏时触发出现则为 true,隐藏则为 false
remove-tag多选模式下移除tag时触发移除的tag值
clear可清空的单选模式下用户点击清空按钮时触发
blur当 input 失去焦点时触发(event: Event)
focus当 input 获得焦点时触发(event: Event)

Select Slots

name说明
自定义模板,参数为 { item }
prefixSelect 组件头部内容
empty无选项时的列表

Options

参数说明类型可选值默认值
value选项的值string/number/object
label选项的标签,若不设置则默认与 value 相同string/number
disabled是否禁用该选项booleanfalse

Methods

方法名说明参数
focus使 input 获取焦点
blur使 input 失去焦点,并隐藏下拉框
http://www.lryc.cn/news/270382.html

相关文章:

  • java常见面试题:请解释一下Java中的常用分布式框架,如Spring Boot、Dubbo等。
  • FreeRTOS列表与列表项相关知识总结以及列表项的插入与删除实战
  • 07|输出解析:用OutputParser生成鲜花推荐列表
  • cfa一级考生复习经验分享系列(十二)
  • 【损失函数】SmoothL1Loss 平滑L1损失函数
  • Go语言中的HTTP重定向
  • ORACLE P6 v23.12 最新虚拟机(VM)全套系统环境分享
  • 鸿蒙开发ArkTS基础学习-开发准备工具配置
  • WEB 3D技术 three.js 雾 基础使用讲解
  • Python中的网络编程
  • uni-app js语法
  • 【论文阅读笔记】Detecting Camouflaged Object in Frequency Domain
  • Mysql(5日志备份恢复)
  • MR实战:实现数据去重
  • JVM 常用知识和面试题
  • 【教3妹学编程-算法题】一年中的第几天
  • ramdump 中的memory统计
  • Element-Ui树形数据懒加载,删除到最后一个空数组不刷新问题
  • 基于NASM搭建一个能编译汇编语言的汇编软件工具环境(利用NotePad++)
  • 使用setoolkit制作钓鱼网站并结合dvwa靶场储存型XSS漏洞利用
  • 计算机组成原理-总线概述
  • 三角函数两角和差公式推导
  • HarmonyOS page生命周期函数讲解
  • 3D视觉-结构光测量-线结构光测量
  • ssm基于web的马病管理系统设计与实现+jsp论文
  • SaaS版Java基层健康卫生云HIS信息管理平台源码(springboot)
  • redis,memcached,nginx网络组件,网络编程——reactor的应用
  • 【机电、机器人方向会议征稿|不限专业|见刊快】2024年机械、 图像与机器人国际会议(IACMIR 2024)
  • uniapp学习之路
  • 移动开发新的风口?Harmony4.0鸿蒙应用开发基础+实践案例