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>
相关推荐
excel28 分钟前
前端加密的作用与使用场景
前端
计算机魔术师2 小时前
纽约时报版权诉讼披露:微软高管内部称训练 AI 是人类历史上最大规模劳动窃取
前端
去伪存真2 小时前
大模型的参数量为什么那么大?
前端·人工智能
IT_陈寒2 小时前
Java空指针这次真把我坑惨了
前端·人工智能·后端
高级程序源3 小时前
django大学生创新创业项目管理系统94923-计算机课程设计、毕业设计
javascript·vue.js·spring boot·后端·python·django·课程设计
八荒启·交互动画3 小时前
# Web特效020—让 Web 特效真正动起来:时间循环应该怎么接
前端·webgl·网页特效·八荒启-交互动画·八荒启
动恰客流统计3 小时前
线下零售数字化浪潮下,客流统计的3个核心发展趋势
大数据·前端·人工智能
lizz22764 小时前
Babel插件手册
javascript
用户938515635074 小时前
从小米前端面试题,彻底搞懂闭包、作用域链与 useState 惰性初始化
前端·面试
粥里有勺糖5 小时前
视野修炼第133期 | Native 回春了?
前端·github·agent