vue3+element-plus 实现动态菜单和动态路由的渲染

目录的数据结构,其中还包括二级目录

复制代码
import { useRoute, useRouter } from 'vue-router'
import MenuTree from './components/MenuTree.vue'

const route = useRoute()
const router = useRouter()
const subchildren = ref(目录数据)

<el-menu
        active-text-color="#88733C"
        background-color="#e3ddd0"
        :default-active="$route.path"
        text-color="#808080"
        router
      >
        <MenuTree :menuList="subchildren"></MenuTree>
</el-menu>

子组件MenuTree:

复制代码
<script setup>
const props = defineProps(['menuList'])
</script>
<template>
  <template v-for="item in props.menuList" :key="item.id">
    <!-- {{ item }} -->
    <!--      分为两种方式渲染:有子菜单和没有子菜单-->
    <el-sub-menu :index="item.name" v-if="item.children.length !== 0">
      <template #title>
        <span>{{ item.title }}</span>
      </template>
      <!--        有子菜单的继续遍历(递归)-->
      <MenuTree :menuList="item.children"></MenuTree>
    </el-sub-menu>
    <!--      没有子菜单-->
    <el-menu-item :index="item.name" v-else>
      <span>{{ item.title }}</span>
    </el-menu-item>
  </template>
</template>
<style lang="scss" scoped></style>
相关推荐
恋猫de小郭12 分钟前
最近 Android 有什么更新:Android Dev Summit 2026 技术解读
android·前端·flutter
计算机魔术师13 分钟前
Reddit 宣布转向以登录为主的体验,以应对 AI 搜索带来的流量下滑
前端
熊猫钓鱼>_>14 分钟前
上架审核常见驳回与隐私合规清单:过审前先自查这 8 条【鸿蒙心迹】
开发语言·前端·华为·华为云·harmonyos·openharmony·ai制作
missile11115 分钟前
# HDR 算法 ISP 通路客制化方案(G100 / mt6789)
java·前端·javascript
挖掘狂人32 分钟前
Vue nextTick 到底在等什么?一篇讲透原理与那些年踩过的坑
javascript·程序员·编程语言
全栈陈序员36 分钟前
【Python】基础语法入门(三十)—— Web 开发入门:用 Flask 搭建第一个网站
前端·python·flask
万少42 分钟前
Harmony 7.0 这个skill帮你自动化操作AGC
前端·javascript·后端
小大宇1 小时前
Vue知识点-ElementPlus-02图标
前端·javascript·vue.js
简简单单就是我_hehe1 小时前
一次 ClickHouse 服务器磁盘告警的排查与修复实录
java·服务器·前端