ElementUi的Dropdown下拉菜单的详细介绍及使用
Dropdown是 ElementUI 中用于创建下拉菜单项的一个组件,通常el-dropdown-item
包裹在 el-dropdown
组件中使用。以下从功能特性(一些属性及方法)、使用和高级功能(高亮显示,滚动,额外传参数)三个方面进行详细介绍。
一、功能特性
1.触发方式多样
支持 click
(点击触发)和 hover
(悬停触发)两种方式。
2.命令值传递
通过 command
属性为菜单项设置唯一标识,点击时触发 command
事件并传递该值,便于区分不同选项。
3.动态控制显示
使用 visible-change
事件监听下拉菜单的显示/隐藏状态变化。
通过 visible
属性(需配合 ref
)或 showPopper
属性(需配合 el-dropdown-menu
的 ref
)手动控制下拉菜单的显示与隐藏。
4.样式与交互优化
支持图标、分割线、禁用状态等样式配置。常用属性:icon
: 图标类名,设置菜单项的图标;divided
: 是否在菜单项上方显示分割线;disabled
: 是否禁用该菜单项。
可通过 hide-on-click
属性控制点击菜单项后是否自动关闭下拉菜单。
二、使用方法
1. 基础用法
<template><el-dropdown @command="handleCommand"><span class="el-dropdown-link">下拉菜单<i class="el-icon-arrow-down el-icon--right"></i></span><el-dropdown-menu slot="dropdown"><el-dropdown-item command="a">选项1</el-dropdown-item><el-dropdown-item command="b" divided>选项2</el-dropdown-item><el-dropdown-item command="c" icon="el-icon-check">选项3</el-dropdown-item><el-dropdown-item command="d" disabled>禁用选项</el-dropdown-item></el-dropdown-menu></el-dropdown>
</template><script>
export default {methods: {handleCommand(command) {console.log('点击了菜单项:', command);// 根据 command 执行不同操作if(command=="a"){// ...},if(command=="b"){},// ...}}
}
</script>
2.动态数据绑定
<template><el-dropdown @command="handleCommand"><span class="el-dropdown-link">{{ selectedOption || '请选择' }}<i class="el-icon-arrow-down el-icon--right"></i></span><el-dropdown-menu slot="dropdown"><el-dropdown-item v-for="item in options" :key="item.value" :command="item.value">{{ item.label }}</el-dropdown-item></el-dropdown-menu></el-dropdown>
</template><script>
export default {data() {return {selectedOption: '',options: [{ label: '选项A', value: 'a' },{ label: '选项B', value: 'b' },{ label: '选项C', value: 'c' }]}},methods: {handleCommand(command) {this.selectedOption = this.options.find(item => item.value === command).label;}}
}
</script>
3. 自定义内容
<el-dropdown-menu slot="dropdown"><el-dropdown-item><i class="el-icon-upload"></i><span>上传文件</span></el-dropdown-item><el-dropdown-item><el-badge :value="12" class="item"><i class="el-icon-message"></i><span>消息</span></el-badge></el-dropdown-item>
</el-dropdown-menu>
三、高级功能
1.当前项高亮
通过动态绑定 class
和 selectedCommand
变量实现
<template><el-dropdown @command="handleCommand"><span class="el-dropdown-link">高亮示例</span><el-dropdown-menu slot="dropdown"><el-dropdown-item v-for="item in options" :key="item.value" :command="item.value":class="{ 'highlight': selectedCommand === item.value }">{{ item.label }}</el-dropdown-item></el-dropdown-menu></el-dropdown>
</template><script>
export default {data() {return {selectedCommand: '',options: [{ label: '选项1', value: 'a' },{ label: '选项2', value: 'b' },{ label: '选项3', value: 'c' }]}},methods: {handleCommand(command) {this.selectedCommand = command;}}
}
</script><style>
.highlight {background-color: #f0f0f0;color: #409EFF;
}
</style>
2.智能滚动定位
当菜单项过多时,可通过 ref
和 this.$nextTick
实现滚动到指定项
<template><el-dropdown ref="dropdownRef" @visible-change="handleVisibleChange"@command="handleCommand"><span class="el-dropdown-link">滚动示例</span><el-dropdown-menu ref="dropdownMenuRef" slot="dropdown"><el-dropdown-item v-for="item in largeOptions" :key="item.value" :command="item.value">{{ item.label }}</el-dropdown-item></el-dropdown-menu></el-dropdown>
</template><script>
export default {data() {return {selectedCommand: 'a', // 默认选中第一项largeOptions: Array.from({ length: 20 }, (_, i) => ({label: `选项${i + 1}`,value: String.fromCharCode(97 + i) // a, b, c, ...}))}},methods: {handleCommand(command) {this.selectedCommand = command;},handleVisibleChange(isVisible) {if (isVisible) {this.$nextTick(() => {const dropdownMenu = this.$refs.dropdownMenuRef.$el;const highlightedItem = dropdownMenu.querySelector('.highlight');if (highlightedItem) {highlightedItem.scrollIntoView({ behavior: 'smooth', block: 'nearest' });}});}}}
}
</script><style>
.highlight {background-color: #f0f0f0;color: #409EFF;
}
</style>
3.传递额外参数
通过对象传递 command
值,结合解构赋值处理
<template><el-dropdown @command="handleCommand"><span class="el-dropdown-link">额外参数示例</span><el-dropdown-menu slot="dropdown"><el-dropdown-item v-for="item in opBtns" :key="item.value" :command="{ command: item.value, row: { id: 1, name: '示例' } }">{{ item.text }}</el-dropdown-item></el-dropdown-menu></el-dropdown>
</template><script>
export default {data() {return {opBtns: [{ value: 'edit', text: '编辑' },{ value: 'delete', text: '删除' }]}},methods: {handleCommand({ command, row }) {console.log('操作类型:', command);console.log('行数据:', row);}}
}
</script>
注意:
属性绑定语法:command
属性必须使用 v-bind
(简写为 :
)绑定,否则无法解析变量。
触发方式限制:trigger
属性不能使用 v-bind
绑定,否则会报错。
样式覆盖:若需深度自定义样式,可使用 ::v-deep
或 /deep/
选择器。
性能优化:大数据量时,建议使用虚拟滚动或分页加载。
若文章对你有帮助,点赞、收藏加关注吧!
相关文章:

ElementUi的Dropdown下拉菜单的详细介绍及使用
Dropdown是 ElementUI 中用于创建下拉菜单项的一个组件,通常el-dropdown-item 包裹在 el-dropdown 组件中使用。以下从功能特性(一些属性及方法)、使用和高级功能(高亮显示,滚动,额外传参数)三个方面进行详细介绍。 一、功能特性 1.触发方式…...

Linux麒麟 V10 系统找回 root 密码的步骤
Linux麒麟 V10 系统找回 root 密码的步骤 1 环境介绍2 操作步骤2.1重启系统并进入 GRUB 菜单2.2 输入 GRUB 账户密码2.3 修改启动参数2.4 启动系统2.5 修改root 密码2.6 重启系统 3 Linux命令全方位指南实战教程Linux命令学习使用列表 1 环境介绍 有时候root 密码忘记…...
20、 DeepSeekMoE论文笔记
DeepSeekMoE 1、**研究背景与动机**2、传统MoE一、MoE架构核心原理详解1. **标准Transformer块的结构**2. **MoE层对FFN的替代**3. **稀疏性与计算效率** 二、举例说明:以 N 4 N4 N4 专家、 K 2 K2 K2 为例1. **场景设定**2. **亲和度计算与专家选择**3. **输出计…...
在 Spring Boot 中实现 WebSockets
什么是 WebSockets? WebSockets 是一种基于 TCP 的全双工通信协议,允许客户端和服务器之间建立持久的双向连接,用于实时数据交换。相较于传统的 HTTP 请求-响应模型,WebSockets 提供了低延迟、高效率的通信方式,特别适…...

stone 3d v3.3.0版本发布,含时间线和连接器等新功能
1.新加了时间线(timeline)编辑器,可以类似blender一样给对象制作动画 2.新加了度量(metrics)系统,通过scene对象检测器中的useMetrics属性来启用或禁用,启用时所选物体将显示三维度量数据 新加了…...

.whl文件
本文主要介绍了.whl文件的定义,怎么安装.whl文件(离线,在线)。 怎么查看cuda的版本,以及如何安装相应版本的cuda(本地电脑,超算上) 以及如何创建.whl文件 .whl文件的定义 Document…...

Git命令行中vim的操作
Git命令行用vim打开文件,或者用其他git命令打开了文件,需要编辑和保存文件等,有些命令表情奇怪,往往容易忘记这些命令。记录下。 下面这篇比较实用和简练: gitvim编辑文件命令 • Worktile社区https://worktile.com/…...

C#初级知识总结
一、什么是CIL 1.CIL(Common Intermidate Language)是指.Net的公共中间语言,它是一种编程语言。 .Net框架的各种语言在编译时都会编译成同一种中间语言(CIL),之后程序运行的时候CIL会被JIT(Just In Time)转换为二进制语言…...
使用 AI Agent 改善师生互动的设计文档
使用 AI Agent 改善师生互动的设计文档 一、引言 1.1 研究背景 当前教育领域的师生互动存在诸多挑战,如教师负担过重、学生个体差异大导致难以满足所有人的需求,以及信息传递延迟等问题。引入AI-Agent能够有效缓解这些问题,通过自动化手段协…...

Linux学习笔记之环境变量
写这篇博客的目的主要是因为本人学习动静态库时,用到了环境变量的知识,发现略有遗忘,因此回顾复习,整理成博客。 一、环境变量是什么 Linux环境变量是存储系统或程序运行时配置信息的特殊变量,用于为程序提供配置参数…...

16:00开始面试,16:08就出来了,问的问题有点变态。。。
从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到4月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…...
深度解析云计算:概念、优势与分类全览
以下是对云计算概念、优点和分类更详细的介绍: 一、云计算的概念 云计算是一种通过互联网提供计算服务的模式,它基于虚拟化、分布式计算、网络存储等一系列先进技术,将计算资源进行整合和管理,形成一个庞大的资源池。这些资源包…...

私钥连接服务器(已经有服务器私钥
前言:假设我们已经有了服务器的私钥,我们怎么配置呢? 下面我会从vsc的配置角度来写 ✅ 步骤一:准备工作 安装 VS Code(如果还没装) 👉 https://code.visualstudio.com/ 安装插件:Re…...

学员答题pk知识竞赛小程序怎么做
制作学员答题PK知识竞赛小程序,主要有以下步骤: 一、规划设计 明确需求:确定小程序的使用场景是校园知识竞赛、培训机构考核还是企业内部培训等。答题功能,规定答题的具体规则,包括题目类型(单选、多选、…...

外观模式:简化复杂系统接口的设计模式
外观模式:简化复杂系统接口的设计模式 一、模式核心:为复杂子系统提供统一简单接口 当一个系统由多个复杂子系统组成时(如电商系统中的支付、物流、库存模块),客户端直接调用子系统会导致依赖关系复杂、代码难以维护…...
vue3项目中eslint.config.ts配置rules
vue3项目中eslint.config.ts配置rules 1. 使用npm create vuelatest创建vue项目 默认的eslint.config.ts如下 import { globalIgnores } from eslint/config import { defineConfigWithVueTs, vueTsConfigs } from vue/eslint-config-typescript import pluginVue from esli…...

uniapp-商城-36-shop 购物车 选好了 进行订单确认2 支付方式颜色变化和颜色滤镜filter
颜色滤镜,在好多网页都这样使用,滤掉彩色,显示黑白,这在一些关键的日子中都这样使用。 1、依然回到订单确认页面 看到支付的颜色了嘛? <view class"payType"><view class"box" :class&q…...

Vue3 上传后的文件智能预览(实战体会)
目录 前言1. Demo12. Demo2 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 爬虫神器,无代码爬取,就来:bright.cn 此处的基本知识涉及较少,主要以Demo的形式供大…...
铃木一郎女儿是奥运会选手吗·棒球1号位
铃木一朗(Ichiro Suzuki) 铃木一朗职业生涯时间线 1973年出生于日本爱知县名古屋市。1992年以选秀第四顺位加入日本职棒(NPB)欧力士蓝浪队,开启职业棒球生涯。 1994-2000年 连续7年获得NPB太平洋联盟打击王ÿ…...
PyTorch与CUDA的关系
文章目录 前言一、如何查看PyTorch和torchvision的版本1.1 查看PyTorch版本1.2 查看torchvision版本二、如何确认PyTorch和torchvision是否支持CUDA加速2.1 检查PyTorch是否支持CUDA2.2 查看当前可用的GPU设备2.3 检查torchvision是否支持CUDA三、CUDA版本的秘密:为什么PyTorc…...

CCE13.【C++ Cont】练习题组13 静态链表专题
目录 1.B3630 排队顺序 题目 分析 代码 提交结果 2.B3631 单向链表 题目 分析 前置知识:map数组加快访问速度(简单的哈希表优化) 使用map数组的重要提醒 代码 提交结果 3.★P1160 队列安排 题目 分析 方法1:带头不循环双向链表的设计 方法2:带头循环的双向链表…...
【Mybatis】MyBatisPlus的saveBatch真的是批量插入吗?深度解析与性能优化
前言 在使用MyBatis-Plus进行批量数据插入时,许多开发者会发现:即使调用saveBatch方法,数据库仍会产生大量INSERT语句。本文将深入源码揭示背后的真相,并提供3种性能优化方案,让你的批量插入速度提升10倍!…...

内联函数(c++)
预处理:优点:内嵌到目标代码,减少函数的调用。 缺点:在预处理阶段完成替换,避免了语义上的差错。 egg: #define SQR(X) ((X)*(X)) 函数:优点:完成了某一类操作的抽象,…...

R7周:糖尿病预测模型优化探索
🍨 本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 一、数据预处理 1.设置GPU import torch.nn.functional as F import torch.nn as nn import torch, torchvisiondevice torch.device("cuda"…...

线程怎么创建?Java 四种方式一网打尽
🚀 Java 中线程的 4 种创建方式详解 创建方式实现方式是否推荐场景说明1. 继承 Thread 类class MyThread extends Thread❌ 不推荐简单学习、单线程场景2. 实现 Runnable 接口class MyRunnable implements Runnable✅ 推荐更适合多线程共享资源3. 实现 Callable 接…...
前端如何连接tcp 服务,接收数据
在传统的浏览器前端环境中,由于浏览器的同源策略和安全限制,无法直接建立 TCP 连接。不过,可以通过 WebSocket 或者使用 WebRTC 来间接实现与 TCP 服务的通信,另外在 Node.js 环境中可以直接使用 net 模块建立 TCP 连接。下面分别…...

STM32之DHT11温湿度传感器---附代码
DHT11简介 DHT11的供电电压为 3-5.5V。 传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。 电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。 DATA 用于微处理器与DHT11之间…...

工业相机——镜头篇【机器视觉,图像采集系统,成像原理,光学系统,成像光路,镜头光圈,镜头景深,远心镜头,分辨率,MTF曲线,焦距计算 ,子午弧矢】
文章目录 1 机器视觉,图像采集系统2 相机镜头,属于一种光学系统3 常规镜头 成像光路4 镜头光圈5 镜头的景深6 远心镜头 及 成像原理7 远心镜头种类 及 应用场景8 镜头分辨率10 镜头的对比度11 镜头的MTF曲线12 镜头的焦距 计算13 子午弧矢 图解 反差 工业…...
如何在Spring Boot中禁用Actuator端点安全性
在 Spring Boot 应用中,Spring Boot Actuator 提供了一系列用于监控和管理应用的端点(如 /actuator/health、/actuator/metrics),这些端点默认可能受到 Spring Security 的保护,要求身份验证或授权。然而,在…...
第48讲:空间大数据与智慧农业——时空大数据分析与农业物联网的融合实践
目录 🧠 一、什么是空间大数据? 📡 二、农业物联网:数据采集的神经末梢 🔁 三、融合应用:空间大数据 + 农业IoT = 决策大脑 1. 精准灌溉管理 2. 时空病虫害预警 3. 农业碳监测与生态评估 💡 四、技术实践案例:农田干旱预警系统 📌 场景设定: 🛠 数据…...