element 多层导航菜单,让网页设计更简洁、美观

前言

在现代网站中,导航菜单是非常重要的一部分,它是用户访问网站的入口,能够直接影响用户的使用体验。而多层导航菜单,更是让网站的信息结构更加清晰明了。本文将为大家介绍如何使用 element 组件库,实现点击左侧导航栏,右侧显示对应页面。

  • 文件结构如下图:

在这里插入图片描述


实现思路

其实配合 element 实现这个操作非常简单,核心在于用 :default-active 属性动态的绑定当前激活菜单的路由路径,然后通过路由嵌套的方式跳转指定路由即可。

overall/index.vue 文件代码

<template>
  <div>
    <el-container>
      <el-aside width="240px">
        <el-menu :default-active="$route.path" class="el-menu-vertical-demo" router>
          <el-submenu index="1">
            <template slot="title">
              <i class="el-icon-location"></i>
              <span>工厂设置</span>
            </template>
            <el-menu-item-group>
              <el-menu-item index="/navigator/index">商户信息</el-menu-item>
              <el-menu-item index="/navigatorTwo/index">推广团队</el-menu-item>
              <el-menu-item index="/navigatorTherr/index">插件管理</el-menu-item>
              <el-menu-item index="/navigatorFour/index">我的客户</el-menu-item>
            </el-menu-item-group>
          </el-submenu>
        </el-menu>
      </el-aside>
      <el-container>
        <el-header>头部</el-header>
        <el-main>
          <router-view></router-view>
        </el-main>
      </el-container>
    </el-container>
  </div>
</template>
<style scoped>
.el-header {
  background-color: #b3c0d1;
  color: #333;
  line-height: 60px;
  height: 100%;
}

.el-aside {
  background-color: #d3dce6;
  color: #333;
  height: 100vh;
}

.el-main {
  background-color: #e9eef3;
  color: #333;
}
</style>

router/index.vue 文件代码

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const routes = [{
	path: '/',
	component: () => import('../views/overall/index.vue'),
	children: [
	    {
			path: "/navigator/index",
			component: () => import('../views/navigator/index.vue')
		},
		{
			path: "/navigatortwo/index",
			component: () => import('../views/navigatortwo/index.vue')
		},
		{
			path: "/navigatorTherr/index",
			component: () => import('../views/navigatorTherr/index.vue')
		}, {
			path: "/navigatorFour/index",
			component: () => import('../views/navigatorFour/index.vue')
		},
	]
}]

const router = new VueRouter({
	mode: 'history',
	base: process.env.BASE_URL,
	routes
})

export default router

最终效果

在这里插入图片描述


- 拓展延伸

所谓嵌套路由就是指路由里面嵌套它的子路由,可以有自己的路由导航和路由容器,通过配置 children 属性可实现多层嵌套。

评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水星记_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值