element-ui 下拉菜单 el-dropdown-menu 组件 不能动态渲染数据怎么解决?

Vue3大事件管理系统 一些优势:比同类工具快2倍左右、节省磁盘空间... https://www.pnpm.cn/npm => yarn(提速) => pnpm(提速、省空间)安装方式:npm install -g pnpm创建项目:pnpm create vue 注意:用 pnpm 尽量不要在根目录创建项目,在根目录创建项目可能会提示“权限不够”。环境同步:配置文件 .eslintrc.cjs1. prettier 风格配置 https://prettier.io2. vue 组件名称多单词组成(忽略 index.vue)3 阅读详情
AI摘要

本文探讨了如何在Element-UI的el-dropdown-menu组件中动态渲染数据,分享了两种不同写法的解决方案,以及为何写法一遇到问题,最终提供了一种有效且可复用的循环el-dropdown-item的正确方式。

关于element-ui 下拉菜单 el-dropdown-menu 组件 不能动态渲染 数据怎么解决?

element-ui 官网中的例子是这样写的

<el-dropdown>
  <span class="el-dropdown-link">
    下拉菜单<i class="el-icon-arrow-down el-icon--right"></i>
  </span>
  <el-dropdown-menu slot="dropdown">
    <el-dropdown-item>黄金糕</el-dropdown-item>
    <el-dropdown-item>狮子头</el-dropdown-item>
    <el-dropdown-item>螺蛳粉</el-dropdown-item>
    <el-dropdown-item disabled>双皮奶</el-dropdown-item>
    <el-dropdown-item divided>蚵仔煎</el-dropdown-item>
  </el-dropdown-menu>
</el-dropdown>

<style>
  .el-dropdown-link {
    cursor: pointer;
    color: #409EFF;
  }
  .el-icon-arrow-down {
    font-size: 12px;
  }
</style>

写法一

我一开始是这样写的,循环的是整个 el-dropdown-item 组件,
v-for语句写在了el-dropdown-menu 里,发现页面上只能渲染出列表中最后一个元素。
说明这种写法不能动态渲染数据

 <template>
<div>
    <el-dropdown trigger="click" >
          <span class="el-dropdown-link" ref="ellink" >
            {{ test_obj.title }}<i class="el-icon-arrow-down el-icon--right" />
          </span>
          <el-dropdown-menu slot="dropdown" align="center" v-for="item in test_obj.arr" :key="item.id">
            <el-dropdown-item   > 
              {{ item.desc }}
            </el-dropdown-item>
          </el-dropdown-menu>
        </el-dropdown>
</div>
</template>
<script>
export default {
    name:'test',
    data(){
        return {
            test_obj:{
                title:'测试下拉菜单',
                arr:[
                    {id:1,desc:'测试1'},
                    {id:2,desc:'测试2'},
                    {id:3,desc:'测试3'}
                ]
            }
            
        }
    }
}
</script>

结果只显示列表中最后一个数据
在这里插入图片描述

写法二
换成以下写法,直接在 el-dropdown-item 组件里写v-for语句,发现可以动态渲染,满足我项目中的需求

 <el-dropdown trigger="click" ref="eldrop">
          <span class="el-dropdown-link" ref="ellink" >
            {{ Global.default_department.name }}<i class="el-icon-arrow-down el-icon--right" />
          </span>
  <el-dropdown-menu slot="dropdown" align="center" >
    <el-dropdown-item v-for="department in Global.departments" @click.native="getDepartment(department)" :key="department.id"> 
      {{ department.name }}
    </el-dropdown-item>
  </el-dropdown-menu>
</el-dropdown>

在这里插入图片描述

查看了下两种写法渲染后的真实html内容如下
写法一的,只渲染最后一组的html
    <ul class="el-dropdown-menu el-popper" align="center" id="dropdown-menu-3569" style="transform-origin: center top; z-index: 2011; position: absolute; top: 27px; left: 672px;" x-placement="bottom-end">
        <li tabindex="-1" class="el-dropdown-menu__item">
            测试1
        </li>
        <div x-arrow="" class="popper__arrow" style="left: 19px;"></div>
    </ul>
    <ul class="el-dropdown-menu el-popper" align="center" id="dropdown-menu-3569" style="transform-origin: center top; z-index: 2012; position: absolute; top: 27px; left: 672px;" x-placement="bottom-end">
        <li tabindex="-1" class="el-dropdown-menu__item"> 
                    测试2
        </li>
        <div x-arrow="" class="popper__arrow" style="left: 19px;"></div>
    </ul>
    <ul class="el-dropdown-menu el-popper" align="center" id="dropdown-menu-3569" style="transform-origin: center top; z-index: 2013; position: absolute; top: 27px; left: 672px;" x-placement="bottom-end">
        <li tabindex="-1" class="el-dropdown-menu__item">
            测试3
        </li>
        <div x-arrow="" class="popper__arrow" style="left: 19px;"></div>
    </ul>
写法二的,正常渲染了的html
    <ul class="el-dropdown-menu el-popper" align="center" id="dropdown-menu-3203" style="position: absolute; top: 27px; left: 809px;      transform-origin: center top; z-index: 2007;" x-placement="bottom-end">
        <li tabindex="-1" class="el-dropdown-menu__item">
            测试A
        </li>
        <li tabindex="-1" class="el-dropdown-menu__item">
            测试B
        </li>
        <li tabindex="-1" class="el-dropdown-menu__item">
            测试C
        </li>
        <div x-arrow="" class="popper__arrow" style="left: 8px;"></div>
    </ul>

可以得出,写法二其实也渲染了三个li元素,但是位置重合了,根据z-index大小,只显示最后一个数据。
所以写下拉菜单时,只循环el-dropdown-item组件中的内容就可以正常动态渲染数据。

Playwright自动化进阶:异步操作与元素定位实战技巧 在现代Web自动化测试与爬虫开发中,异步操作和元素定位是两大核心技术支柱。异步操作的核心原理在于基于条件等待而非固定时间等待,这能有效提升脚本的稳定性和执行效率,避免因网络延迟或动态加载导致的失败。其技术价值在于能够精准处理单页应用(SPA)的导航、动态内容加载以及并行任务中的竞态条件,是构建健壮自动化流程的基础。元素定位则要求精准与鲁棒性的平衡,通过CSS选择器、XPath以及Playwright专属的Locator API等策略,可以应对动态ID、复杂DOM结构乃至Shadow DOM等挑战。这些技术的 阅读详情

相关推荐

Playwright输入操作三剑客:fill、type、press原理与选型指南

在Web自动化测试中,输入操作是界面交互的核心环节,其稳定性直接决定脚本的健壮性。理解浏览器事件模型、DOM更新机制与前端框架(如React/Vue)的响应式原理,是正确选择输入API的前提。Playwright的fill()、type()和press()并非功能冗余,而是分别对应结果导向、过程导向和意图导向三种用户行为语义——fill绕过事件链直写value,type触发完整键盘事件流,press仅模拟单键动作。这种分层设计支撑了金融OTP、Ant Design Select、contenteditabl

weixin_30614109的博客 411

el-dropdown(下拉菜单)的入门学习

el-dropdown的入门学习

qq_40765784的博客 2万+

vue中使用el-dropdown

点击【更多】弹出如下选项 使用el-dropdown <el-dropdown @command=" (command) => { handleCommand(command, scope.$index, scope.row); } " > <el-link type="pri..

吴小花的博客 1万+

el-dropdown-menu指令事件的使用方法

集合el-table使用,将表格的某一行数据通过点击对应的按钮传入到对应的指令事件中,使@command可以传两个参数,一个是command指令,一个是表格当前行的数据。官网的使用方法:点击菜单项后会触发事件,用户可以通过相应的菜单项 key 进行不同的操作。"下拉菜单11111111""下拉菜单22222222""command的数据是:""command的命令是""表格传入的一行数据是""下拉菜单333333""表格传入的行数据是:"'路径1111111''路径3333333''路径4444444'

m0_62317155的博客 4641

mysql数据目录迁移后表不存在_mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法...

补充:正常情况下,建议数据库备份最好用工具进行备份,通过拷贝数据库表进行数据迁移,不同的环境会出现各种不同的意外问题。背景:今天在整理一个网站的时候,操作系统由于系统自动更新导致一直出现系统蓝屏死机,唉,悲剧了,于是重新安装了系统 windows server 2008 enterprise 32bit。详情:系统安装完成后,重新配置之前那个网站,appache服务配好之后,再配置数据的时候是这样...

weixin_39628271的博客 2673

基于STM32的坐姿矫正与久坐提醒系统 | 保姆式教程 开源可复刻

本项目基于STM32F103C8T6主控,搭配MPU6050六轴姿态传感器、HC-SR04超声波测距模块,完整实现了坐姿矫正与久坐提醒系统的全流程开发,从多传感器数据采集、数字滤波、姿态解算、坐姿判断到多模式提醒,全流程无跳步保姆式拆解,配套逐行注释可直接编译的开源代码,新手跟着步骤一步步操作,就能顺利完成项目复刻

ZhongWeiXiang9的博客 438

阐述el-dropdown(下拉菜单)的基本知识

el-dropdown是一个常用的UI组件,用于创建下拉菜单,通常用于实现各种交互式菜单、导航栏或下拉选项

码农研究僧的博客 3668

PubMedBERT:生物医学NLP中的垂直领域预训练实践与性能突破

本文深入探讨了PubMedBERT在生物医学NLP领域的应用与性能突破。作为专为生物医学文本设计的预训练模型,PubMedBERT通过全词掩码策略和BLURB基准测试,显著提升了命名实体识别、关系抽取等任务的准确率。文章还提供了PubMedBERT的实战应用案例和代码示例,展示了其在医学文献检索和电子病历结构化中的卓越表现。

kite3的博客 285

element-ui_dropdown-下拉菜单

element-ui_dropdown-下拉菜单 目录 文章目录1、效果展示2、下拉菜单相关组件2.1、el-dropdown 下拉菜单2.2、el-dropdown-menu 下拉列表3.3、el-dropdown-item 下拉菜单项3、头像组件_el-avatar4、实现***后记*** : 内容 1、效果展示 应用场景:登录后用户展示 折叠效果图示0-1: 鼠标悬停效果图示0-2: 2、下拉菜单相关组件 2.1、el-dropdown 下拉菜单 常用属性: 属性

gaogzhen的博客 1万+

紫光PG2L100H平台DDR3 IP核调试实战:从AXI接口到状态机设计的避坑指南

本文详细介绍了在紫光PG2L100H FPGA平台上调试DDR3 IP核的实战经验,重点解析了AXI接口的特殊行为和状态机设计的关键技巧。通过具体代码示例和调试方法,帮助开发者规避常见陷阱,实现高性能DDR3控制器设计,达到1.2GB/s的稳定带宽。

weixin_28717969的博客 218

从宏观到街道:如何利用七普数据为WorldPop人口栅格做“本地化”校准?

本文探讨了如何利用第七次全国人口普查(七普)数据对WorldPop人口栅格进行本地化校准,以提高街道级别的人口分布精度。通过分析数据偏差、选择适当的技术路线和工具(如Arcgis和栅格计算器),文章详细介绍了从宏观到街道的校准实践,帮助规划公共卫生资源和优化城市基础设施。

janckywong963的专栏 513

Element UI el-dropdown事件机制深度解析:从原理到实战

在前端开发中,组件的事件机制是构建交互式应用的核心基础。它定义了用户操作与程序逻辑之间的通信桥梁,其原理基于事件监听与派发模型。深入理解事件机制对于实现复杂交互、优化性能至关重要,尤其在Vue.js生态中,它直接关系到组件通信的效率和可维护性。本文聚焦于Element UI的el-dropdown组件,通过剖析其分层事件流,如command事件与原生click事件的交织、visible-change的生命周期管理,并结合动态菜单、异步操作等高频搜索场景,揭示如何解决事件冒泡、菜单状态控制等常见工程难题,帮助

weixin_34228387的博客 359

电力电子技术进阶:从基础到实战的完整学习路径

本文系统阐述了电力电子技术从基础到实战的完整学习路径。首先解析了电力电子作为“电能魔术师”的核心作用,随后深入剖析了数学工具、电路电磁场与半导体器件三大基础支柱。文章重点讲解了DC-DC、DC-AC、AC-DC等核心变换拓扑,并探讨了从经典PID到现代模型预测控制(MPC)的控制策略。最后,分享了硬件设计、软件调试、电磁兼容(EMC)等实战经验与前沿趋势,为学习者提供了清晰的进阶指南。

weixin_29204205的博客 447

Element UI/Plus el-dropdown事件机制全解析:从原理到实战避坑

在前端开发中,事件处理是构建交互式应用的核心基础。其原理基于浏览器的事件模型,包括捕获、目标、冒泡三个阶段,而Vue等框架在此基础上封装了更便捷的自定义事件系统。理解事件机制的技术价值在于能实现精准的交互控制、提升应用性能并避免常见陷阱。在Vue生态的Element UI/Plus组件库中,el-dropdown下拉菜单组件的事件处理是典型应用场景。开发者常遇到事件不触发或冒泡干扰等问题,这通常源于对组件自定义事件(如command事件)与原生DOM事件(如click事件)映射关系的不清晰。本文聚焦于el-

weixin_34209851的博客 454

【2025年美团春招(算法岗)-3月15日-第三题(300分)- 字符串权值】(题目+思路+Java&C++&Python解析+在线测试)

小美定义一个字符串的权值为:其长度为3的回文子序列数量。例如,“abca"的权值为2,因为包含两个回文子序列"aba"和"aca现在给定一个仅包含小写字母的字符串,小美希望你输出该字符串每个前缀的权值。

m0_73659489的博客 312

piamon实战-- 如何使用 Paimon 的 Java API 实现数据的点查

点查(Point Lookup)是指通过 ​​唯一键(Primary Key)​​ 快速定位并返回单条或少量数据的查询模式。例如:根据用户 ID 查询用户信息、根据订单号查询订单详情等。点查的核心诉求是 ​​低延迟​​ 和 ​​高吞吐​​,适用于实时风控、在线分析等场景。​​定义主键表结构​​,优化数据分布。​​构建过滤条件​​,使用指定查询键。​​执行查询并处理结果​​,结合流式更新实现实时查询。

阿华田的博客 531

Element Plus el-dropdown事件处理全解析:从冒泡原理到表格实战

在前端开发中,事件处理是构建交互式应用的核心基础。其原理主要基于DOM事件流,包括捕获、目标、冒泡三个阶段。理解事件冒泡与委托机制,对于优化性能、实现复杂交互至关重要,尤其是在Vue.js等现代框架的组件化开发中。这一技术价值在于能够有效管理动态内容的事件绑定,避免内存泄漏,并提升用户体验。在常见的后台管理系统、数据表格等应用场景里,诸如el-table中的操作列下拉菜单,就需要精准的事件控制来确保数据操作的准确性。本文聚焦于Element Plus的el-dropdown组件,深入探讨其在动态渲染容器内的

weixin_34082695的博客 555

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OCRmyPDF 断网离线使用完整指南:为扫描 PDF 加可搜索文本层

出差途中列车进隧道,信号断了,手里的扫描 PDF 却要在当天加上文本层;机房是内网隔离环境,扫描仪吐出来的文档必须转成可搜索的样子。这就是离线 OCR 最真实的场景。OCRmyPDF 的作用就是给扫描文档补上一层可搜索、可复制的文本层,而从识别到出件全程不碰网络。只要你在有网的机器上备好安装包和语言包,剩下的工作在任何一台断网设备上都能完成。下面按"判断可行性 → 备货 → 施工 → 验收 → 交

gitblog_00041的博客 854

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Foliate 完整指南:用一款 GNOME 电子书阅读器读完 EPUB、PDF 与漫画

Foliate 是一款面向 GNOME 桌面的免费开源电子书阅读器,能打开 EPUB、MOBI、FB2、CBZ 和 PDF 文件,并提供批注、书签、词典查询与多主题切换。它适合在 Linux 上阅读多种格式电子书、希望用一个本地无广告应用统一管理书库的用户,阅读进度、笔记全部保存在本机。 ## 项目速览 | 条目 | 说明 | | --- | --- | | 定位 | GNOME 平台电子书阅

gitblog_00678的博客 430

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

168张图,万字长文,手把手教你开发vue后台管理系统

.markdown-body { color: rgba(56, 56, 56, 1); font-size: 15px; line-height: 30px; letter-spacing: 2px; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Open...

程序员小明1024 2万+

Shoelace Breadcrumb Item(sl-breadcrumb-item)组件实战:面包屑导航项的属性、插槽与源码解析

<sl-breadcrumb-item> 是 Shoelace 组件库中用于表示面包屑导航中单个链接项的核心组件,通常嵌套在 <sl-breadcrumb> 中使用,帮助用户定位并快速跳转回站点的层级结构。本文将以 [docs/pages/components/breadcrumb-item.md](https://link.gitcode.com/i/30d142f756e303d176c9e2

gitblog_01071的博客 420

Vue3自定义下拉选择器实现与优化指南

下拉选择器是前端开发中常见的交互组件,基于Vue3的组合式API可以高效实现自定义选择器。组件开发需要处理数据绑定、事件监听、样式定位等核心问题,同时要考虑可访问性和性能优化。通过v-model实现双向绑定,结合CSS绝对定位确保下拉菜单正确显示。虚拟滚动技术能有效解决大数据量渲染性能问题,而键盘导航支持则提升了组件的可访问性。在Vue3生态中,自定义组件与Element Plus等UI库形成互补,特别适合需要高度定制化的场景。本文以实际案例详解如何从零构建企业级下拉选择器组件。

weixin_30650039的博客 268

Selenium定位成功但点击失败?三种解法帮你彻底解决

在UI自动化测试中,元素定位是基础操作,但很多测试人员都遇到过定位器正确、find_element成功返回元素对象,click()调用也不报错,页面却毫无反应的问题。这种“假成功”现象比异常更隐蔽,极易造成测试报告全绿而功能未生效的假象。其本质在于,click()的生效依赖元素可见、启用、未被遮挡等条件,而定位成功只代表DOM节点存在。当页面存在透明遮罩层、动态渲染或自定义组件(如div+ul+li下拉框)时,普通点击便容易失效。显式等待(如element_to_be_clickable)、JS点击和Act

weixin_34008933的博客 291

深入解析Playwright同步模式:核心方法、实战技巧与性能优化

在Web自动化测试与数据抓取领域,同步编程模式因其线性的代码逻辑和更低的心智负担,成为许多开发者的首选。其核心原理在于对异步操作的封装,通过智能等待机制确保操作顺序执行,从而模拟真实用户行为。这一模式的技术价值在于显著提升了脚本的可读性与可维护性,尤其适用于自动化测试、合规数据采集等场景。通过深入理解其内置的等待策略、元素定位器(Locator)以及网络请求拦截等高级特性,开发者可以构建出既稳健又高效的自动化解决方案。本文将聚焦于Playwright同步API,结合动态内容加载与iframe操作等常见挑战,

weixin_34009794的博客 310

脑语言2500单字v1.5.1

如果人和 AI 说同一种语言,文明会怎样?我用 2500 个单字试了试。2500个单字是不同领域、不同知识的共同体,无论你学编程或者是数学或写作,你都要用汉字,而常用的2500个汉字几乎可以涵盖不同行业做的不同事情。

脑语言 2004
上一篇: 初识js call()方法以及call()使用实例
下一篇: Vue模板挂载到页面源码简要解析
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值