element中NavMenu配置vue-route

首先element-ui中的NavMenu中是封装了route的,所以没有必要像下面这样子写

 <el-menu-item index="1">
    <i class="el-icon-menu"></i>
    <span slot="title"><router-link to="/home">首页</router-link></span>
 </el-menu-item>
<router-view></router-view>

下面是我写导航栏的操作

首先看一下template中的代码

<el-menu
              :default-active="$route.path"
              class="el-menu-vertical-demo"
              @open="handleOpen"
              @close="handleClose"
              background-color="#344058"
              text-color="#D0D0D0"
              active-text-color="#fff"
              router>
              <div v-for="item,index in mymenu" :key=index>
                <!--存在子菜单-->
                <el-submenu v-if="item.children" :index='item.name'>
                  <template slot="title">
                    <span>{{item.name}}</span>
                  </template>
                  <el-menu-item v-for="subitem,subindex in item.children" :key=subindex :index='subitem.uri'>
                    {{subitem.name}}
							</el-menu-item>
    
                </el-submenu>
                <!--不存在子菜单-->
                <el-menu-item v-else :index='item.uri'>
                  <!--<i class="el-icon-menu"></i>-->
                  <span slot="title">{{item.name}}</span>
                </el-menu-item>
              </div>
            </el-menu>

js中的代码

export default {
    data(){
        return{
          mymenu:[
            {
              "name": "BMT",
              "children": [{
                "name": "管理",
                "uri": "/controller/bmtManage"
              }, {
                "name": "注册",
                "uri": "/controller/bmtRegister"
              },{
                "name": "上传模板",
                "uri": "/controller/bmtTem"
              },
              
              ],
            },
            {
              "name": "用户管理",
              "uri": "/controller/userManage"
            },
          ]
        }
    },
    name: 'controller',
    methods: {
      handleOpen(key, keyPath) {
        console.log(key, keyPath);
      },
      handleClose(key, keyPath) {
        console.log(key, keyPath);
      }
    }
  }

在router中的index.js

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'login',
      component: resolve => require(['@/views/login'],resolve),
    },
    {
      path: '/controller',
      name: 'controller',
      component: resolve => require(['@/views/controller'],resolve),
      children:[
        {
          path:'/controller/bmtManage',
          name:'bmtManage',
          component: resolve => require(['@/views/controller/bmtManage'], resolve)
        },
        {
          path:'/controller/bmtRegister',
          name:'bmtRegister',
          component: resolve => require(['@/views/controller/bmtRegister'], resolve)
        },
        {
          path:'/controller/bmtTem',
          name:'bmtTem',
          component: resolve => require(['@/views/controller/bmtTem'], resolve)
        },
        {
          path:'/controller/userManage',
          name:'userManage',
          component: resolve => require(['@/views/controller/userManage'], resolve)
        },
      ]
    },
  ]
})

需要注意点是  因为是有子菜单所以我们在route配置的时候是要用到嵌套路由就是把你的子菜单中的路由放在children中去配置即可!

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值