vue-element-admin侧边栏
时间: 2023-09-21 22:03:01 浏览: 133
Vue-element-admin 是一个基于 Vue.js 和 Element UI 的后台管理系统解决方案。它提供了许多常用的后台管理功能和组件,包括侧边栏、面包屑导航、表格、表单、图表等等。
侧边栏是 Vue-element-admin 中的一个重要组件,它通常用于展示系统的菜单和功能项。在 Vue-element-admin 中,侧边栏是通过路由配置来生成的。
在路由配置中,每一个路由配置项对应着一个菜单项。菜单项包括菜单的标题、图标、路径、子菜单等信息。当用户点击菜单项时,就会跳转到对应的路由页面。
以下是一个简单的示例,演示如何使用 Vue-element-admin 的侧边栏组件:
```javascript
// 路由配置
const routes = [
{
path: '/',
redirect: '/dashboard'
},
{
path: '/dashboard',
component: Layout,
children: [
{
path: '',
name: 'Dashboard',
component: () => import('@/views/dashboard/index'),
meta: { title: 'Dashboard', icon: 'dashboard' }
}
]
},
{
path: '/example',
component: Layout,
redirect: '/example/table',
name: 'Example',
meta: { title: 'Example', icon: 'example' },
children: [
{
path: 'table',
name: 'Table',
component: () => import('@/views/table/index'),
meta: { title: 'Table', icon: 'table' }
},
{
path: 'tree',
name: 'Tree',
component: () => import('@/views/tree/index'),
meta: { title: 'Tree', icon: 'tree' }
}
]
}
]
// 侧边栏组件
<template>
<el-menu :default-active="activeIndex" class="el-menu-vertical-demo" :collapse="isCollapse">
<template v-for="(item, index) in menuList">
<el-submenu v-if="item.children" :key="index" :index="index">
<template slot="title">
<i :class="item.icon"></i>
<span slot="title">{{item.title}}</span>
</template>
<template v-for="(subItem, subIndex) in item.children">
<el-menu-item :key="index + '-' + subIndex" :index="index + '-' + subIndex" @click="handleMenuClick(subItem)">
<i :class="subItem.icon"></i>
<span slot="title">{{subItem.title}}</span>
</el-menu-item>
</template>
</el-submenu>
<el-menu-item v-else :key="index" :index="index" @click="handleMenuClick(item)">
<i :class="item.icon"></i>
<span slot="title">{{item.title}}</span>
</el-menu-item>
</template>
</el-menu>
</template>
<script>
export default {
props: {
menuList: {
type: Array,
required: true
},
activeIndex: {
type: String,
required: true
},
isCollapse: {
type: Boolean,
required: true
}
},
methods: {
handleMenuClick(item) {
this.$emit('menu-click', item)
}
}
}
</script>
```
在这个示例中,路由配置包含了三个路由项,分别对应 Dashboard、Table 和 Tree 三个菜单项。侧边栏组件则使用了 Element UI 中的 Menu 组件来展示菜单项。侧边栏组件的主要作用是传递菜单项列表、当前选中的菜单项和侧边栏是否折叠等参数,以及监听菜单项的点击事件。
阅读全文