vue后台管理系统左侧菜单实现动态添加和删除,我需要看到代码
时间: 2024-04-29 08:22:55 浏览: 60
好的,请稍等,我正在获取相关代码。
以下是一个简单的示例代码,仅供参考:
1. 定义菜单数据结构
```javascript
const menuData = [
{
id: '1',
title: '仪表盘',
icon: 'dashboard',
path: '/dashboard',
},
{
id: '2',
title: '文章管理',
icon: 'file-text',
path: '/articles',
},
{
id: '3',
title: '用户管理',
icon: 'user',
path: '/users',
},
]
```
2. 使用Vue动态绑定数据生成菜单
```html
<template>
<div class="menu-container">
<el-menu
:default-active="activePath"
:collapse="collapsed"
:unique-opened="true"
router
>
<el-submenu v-for="menuItem in menuList" :key="menuItem.id" :index="menuItem.path">
<template v-if="menuItem.children">
<span slot="title">
<i :class="'el-icon-' + menuItem.icon"></i>
<span>{{ menuItem.title }}</span>
</span>
<el-menu-item v-for="subMenuItem in menuItem.children" :key="subMenuItem.path" :index="subMenuItem.path">
{{ subMenuItem.title }}
</el-menu-item>
</template>
<template v-else>
<el-menu-item :index="menuItem.path">
<i :class="'el-icon-' + menuItem.icon"></i>
<span>{{ menuItem.title }}</span>
</el-menu-item>
</template>
</el-submenu>
</el-menu>
</div>
</template>
<script>
export default {
name: 'Menu',
data() {
return {
menuList: [],
activePath: '',
}
},
created() {
// 获取菜单数据
this.menuList = menuData
// 设置默认激活的菜单项
this.activePath = this.$route.path
},
watch: {
// 监听路由变化,切换激活的菜单项
$route(to) {
this.activePath = to.path
},
},
}
</script>
<style scoped>
.menu-container {
padding: 20px;
}
</style>
```
3. 实现动态添加和删除菜单项
```javascript
export default {
// ...
methods: {
addMenuItem() {
const newItem = {
id: '4',
title: '新菜单项',
icon: 'star-on',
path: '/new-item',
}
this.menuList.push(newItem)
},
removeMenuItem() {
const removedItem = this.menuList.pop()
console.log(`已删除菜单项:${removedItem.title}`)
},
},
}
```
在上述代码中,`addMenuItem` 方法用于在菜单列表末尾添加一个新的菜单项,`removeMenuItem` 方法用于从菜单列表末尾删除一个菜单项。您可以根据自己的需求修改这些方法。
阅读全文