vue3+elementui-plus实现无限递归菜单

embedded/2024/9/23 10:57:01/

效果图
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实现方式是:通过给定的数据结构层数来动态生成多级菜单

menu.vue<template><el-menu:default-active="activeIndex"class="el-menu-demo"mode="horizontal"@select="handleSelect"background-color="#f8f8f9"style="margin-top: 20px;margin-left: 1px;"><Childrenmenu v-for="menuItem in menuItems" :key="menuItem.value" :item="menuItem" /></el-menu>
</template><script setup>
import Childrenmenu from "./childrenmenu";
const menuItems = [{value: '1',label: '菜单1',children: [{value: '1-1',label: '子菜单1-1',children: [{ value: '1-1-1', label: '子菜单1-1-1' },{ value: '1-1-2', label: '子菜单1-1-2' },],},{ value: '1-2', label: '子菜单1-2' },],},{value: '2',label: '菜单2',children: [{ value: '2-1', label: '子菜单2-1' },{value: '2-2',label: '子菜单2-2',children: [{ value: '2-2-1', label: '子菜单2-2-1' },{ value: '2-2-2', label: '子菜单2-2-2' },],},],},{value: '3',label: '菜单3',children: [{value: '3-1',label: '子菜单3-1',children: [{value: '3-1-1',label: '子菜单3-1-1',children: [{ value: '3-1-1-1', label: '子菜单3-1-1-1' },{ value: '3-1-1-2', label: '子菜单3-1-1-2' },],},],},],},];const handleSelect = async (key, keyPath) => {console.log(key, keyPath)
}
</script>
childrenmenu.vue<template><template v-if="item.children"><el-sub-menu :index="item.value"><template #title>{{ item.label }}</template><Childrenmenu v-for="childItem in item.children" :key="childItem.value" :item="childItem" /></el-sub-menu></template><template v-else><el-menu-item :index="item.value">{{ item.label }}</el-menu-item></template>
</template><script setup>
import { defineProps } from 'vue';const props = defineProps(['item']);
</script><style scoped></style>

http://www.ppmy.cn/embedded/7769.html

相关文章

搜索+剪枝,LeetCode 216. 组合总和 III

目录 一、题目 1、题目描述 2、接口描述 python3 cpp 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 python3 cpp 一、题目 1、题目描述 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多…

Jmeter-非GUI模式下运行jmeter脚本-适用于服务器上持续集成测试

背景 大部分Jmeter脚本都是部署在Linux上运行&#xff0c;利用Jenkins做接口自动化&#xff0c;定时巡检任务。 执行命令 1.进入jmeter的目录&#xff0c;bin文件夹 cd C:\path\to\jmeter\bin2.运行脚本文件 jmeter -n -t D:\{脚本文件目录}\xxx.jmx -l D:\{脚本文件目录}…

Springboot的Test单元测试操作

Springboot的Test单元测试操作 简单总结需要操作的步骤 1&#xff0c;导入依赖 2&#xff0c;创建目录&#xff08;目录和启动类的目录保持一致&#xff09; 3&#xff0c;添加注解 4&#xff0c;写方法测试 1&#xff0c;导入依赖 <dependency><groupId>org.spri…

OpenStack 常见模块详解

目录 一、OpenStack 架构 二、控制台 Dashboard 三、身份认证服务 Keystone 1&#xff09;用户&#xff08;user&#xff09; 2&#xff09;项目&#xff08;project&#xff09; 3&#xff09;角色&#xff08;role&#xff09; 4&#xff09;服务&#xff08;serv…

C语言语法进阶

条件运算符 条件运算符是 C 语言中唯一的一种三目运算符。三目运算符代表有三个操作数&#xff1b;双目 运算符代表有两个操作数&#xff0c;如逻辑与运算符就是双目运算符&#xff1b;单目运算符代表有一个操作数&#xff0c; 如逻辑非运算符就是单目运算符。运算符也称操作符…

react之组件与JSX

第一章 - 描述用户界面 概述&#xff1a;React是一个用于构建用户界面&#xff08;UI&#xff09;的JavaScript库&#xff0c;用户界面由按钮&#xff0c;文本和图像等小单元内容构建而成。React帮助你把它们组合成可重用&#xff0c;可嵌套的组件。从web端网站到移动端应用&a…

【埋点探针】微信小程序SDK安装

一、下载微信小程序SDK埋点代码 选择Wechat&#xff0c;复制sdk代码 在项目根目录下&#xff0c;创建sdk文件&#xff0c;webfunny.event.js 二、在app.js文件中&#xff0c;引入埋点SDK代码 首先引入sdk代码 require("./webfunny.event.js")引入兼容代码&#x…

Apache Atlas 50道面试题及参考答案

目录 Apache Atlas 是什么,它在大数据领域扮演什么角色? 解释一下元数据在Apache Atlas中的作用是什么?