vue3 elementplus左侧无限级菜单

使用的组件是 element Plus Menu 菜单
在这里插入图片描述
注意:Menu 菜单属性参数可以自己配置
在这里插入图片描述
链接: Menu 菜单

//父级页面
<el-container>
      <el-aside width="320px">
        <el-menu
          @open="handleOpen"
          @close="handleClose"
          :default-active="defaultIndex"
          :default-openeds="defaultOpeneds"
          router
          @select="menuSelect"
        >
          <MenuChild :list="list" />
        </el-menu>
      </el-aside>

      <el-main>
        //这个地方可以放路由名称等
        <router-view v-slot="{ Component, route }">
          <transition name="fade" mode="out-in">
            <component :is="Component" :key="route.fullPath" />
          </transition>
        </router-view>
      </el-main>
    </el-container>
    
//值
const state = reactive({
  list: [] as any,
  defaultIndex: '',
  defaultOpeneds: []
});

//方法
const handleOpen = (key: string, keyPath: string[]) => {};
const handleClose = (key: string, keyPath: string[]) => {};

//菜单选择
const menuSelect = (index, indexPath, item, routeResult) => {
}
//子级菜单
<template v-for="(item, index) in list" :key="index">
    <!-- 非叶子节点 -->
    <el-sub-menu v-if="item.children" :index="index">
      <template #title>
      	<!-- 路由名称 -->
        <div>{{ item.meta.name }}</div>
      </template>
      <MenuChild :child="item.children" />
    </el-sub-menu>

    <!-- 叶子节点 -->
    <el-menu-item v-else :index="index" :route="item">
    	<!-- 路由名称 -->
      <div>{{ item.meta.name }}</div>
    </el-menu-item>
  </template>

//重点 自调用自己
import MenuChild from './child.vue';

//接受父级传过来的数据
defineProps({
  list: {
    type: Array as any,
    required: true,
    default: () => []
  }
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值