element-ui侧边栏实现路由跳转:重点是:default-active和router才能正常跳转&默认展开侧边栏:default-openeds子菜单栏
时间: 2024-11-09 22:30:42 浏览: 41
element-ui使用导航栏跳转路由的用法详解
在Element UI中,要实现在侧边栏点击某个菜单项并进行路由跳转,通常需要结合Vue.js的`v-router`组件以及`el-menu`组件的特性。以下是关键步骤:
1. **设置default-active和router**: 当前要实现的是默认激活某个路由和对应菜单。在`main.js`或全局配置文件里,你需要绑定`router-view`和`el-menu`,同时设置每个菜单项的`index`属性,使其关联到对应的路由路径。例如:
```javascript
// main.js 或者 vue.config.js
import Vue from 'vue';
import Router from 'vue-router';
import { ElMenu } from 'element-plus';
Vue.use(Router);
Vue.component('el-menu', ElMenu);
const router = new Router({
routes: [
// ... 路由配置列表
],
scrollBehavior: () => ({ y: 0 }),
});
router.beforeEach((to, from, next) => {
// 更新menu的active状态
let menuItems = document.querySelectorAll('.el-menu-item');
for (let item of menuItems) {
if (item.dataset.router === to.path) {
item.classList.add('is-active');
break;
}
}
next();
});
// 模拟某个路由如'/dashboard'
router.options.routes[0].path = '/dashboard';
router.options.routes[0].meta.defaultActive = true; // 设置默认激活这个路由
new Vue({ el: '#app', router });
```
2. **默认展开侧边栏子菜单** (`default-openeds`): 如果想让某个菜单项下的所有子菜单默认展开,可以在对应的菜单对象的`meta`字段添加`default-openeds`属性,例如:
```json
{
path: '/dashboard',
component: Dashboard,
meta: { defaultActive: true, defaultOpeneds: ['sub-menu1', 'sub-menu2'] },
}
```
这样当你访问`/dashboard`时,名为`sub-menu1`和`sub-menu2`的子菜单将会默认展开。
阅读全文