vue使用elementUI组件做面包屑

关于elementUI的相关使用代码和解释请看element UI官网

效果如图:
在这里插入图片描述
1. 先在router文件夹里的index.js下引入组件
采用子路由的方式引入子路由组件

    {
      path: '/',
      name: '后台管理系统',
      component: HelloWorld,
      children: [{
          path: '/',
          name: '首页',
          component: Index

        },
        {
          path: '/1',
          name: '个人管理',
          component: Component1,

        },
        {
          path: '/2',
          name: '用户管理',
          component: Component2,
        },
        {
          name: '内容管理',
          path: ':id', //无值
          component: Component3,
          children: [{
              path: '/3-1',
              name: '课程信息',
              component: Component3_1,
            },
            {
              path: '/3-2',
              name: '课程学习',
              component: Component3_2,
            },
            {
              path: ':id',
              name: '资源管理',
              component: Component3_3,
              children:[
                {
                  path: '/3-3-1',
                  name: '导学资源',
                  component: Component3_3_1,
                },
                {
                  path: '/3-3-2',
                  name: '学习资源',
                  component: Component3_3_2,
                },
                {
                  path: '/3-3-3',
                  name: '复习资源',
                  component: Component3_3_3,
                },
                {
                  path: '/3-3-4',
                  name: '课程FAQ',
                  component: Component3_3_4,
                },
              ]
            },
            {
              name: '作业管理',
              path: ':id',
              component: Component3_4,
              children:[
                {
                  path: '/3-4-1',
                  name: '自我测试',
                  component: Component3_4_1,                  
                },
                {
                  path: '/3-4-2',
                  name: '模拟试卷',
                  component: Component3_4_2,                  
                },
              ]
            },
          ]
        },
        {
          path: '/4',
          name: '系统管理',
          component: Component4,

        },
      ],
    },

另外,父页面的内容部分要加上路由
如图
在这里插入图片描述

2.创建面包屑组件

// BreadCrumb.vue
<template>
    <div class="navbar clearfix">
        <el-breadcrumb class="breadcrumb-container" separator="/">
            <el-breadcrumb-item v-for="item in levelList" :key="item.path">
            {{item.name}}
          </el-breadcrumb-item>
        </el-breadcrumb>
    </div>
</template>

<script>
    export default {
        name: 'Navbar',
        data() {
            return {
                levelList: []
            }
        },
        watch: {
            $route() {
                this.getBreadcrumb()  //监听路由变化
            }
        },
        created(){
            this.getBreadcrumb()
        },
        methods:{
            getBreadcrumb() {
                let matched = this.$route.matched.filter(item => item.name)  //获取路由信息,并过滤保留路由名称信息存入数组
                this.levelList = matched
                // console.log(matched)
            }
        }
    }
</script>

3. 要使用面包屑的页面加入面包屑组件并使用
在这里插入图片描述

4.在导航菜单栏上绑定动态路由

        <el-col :span="5" id="side-menu">
          <el-menu router default-active="this.$route.path" class="el-menu-vertical-demo">
            <el-menu-item index="/">
              <span slot="title">
                <i class="el-icon-s-home bar-icon"></i>首页
              </span>
            </el-menu-item>
            <el-menu-item index="1">
              <span slot="title">
                <i class="el-icon-edit-outline bar-icon"></i>个人管理
              </span>
            </el-menu-item>
            <el-menu-item index="2">
              <span slot="title">
                <i class="el-icon-user-solid bar-icon"></i>用户管理
              </span>
            </el-menu-item>
            <el-submenu index="3">
              <template slot="title">
                <span>
                  <i class="el-icon-suitcase bar-icon"></i>内容管理
                </span>
              </template>
              <el-menu-item-group unique-opened="true">
                <el-menu-item index="3-1">课程信息</el-menu-item>
                <el-menu-item index="3-2">课程学习</el-menu-item>
                <el-submenu index="3-3">
                  <template slot="title">
                    <span>资源管理</span>
                  </template>
                  <el-menu-item index="3-3-1">导学资源</el-menu-item>
                  <el-menu-item index="3-3-2">复习资源</el-menu-item>
                  <el-menu-item index="3-3-3">作业管理</el-menu-item>
                  <el-menu-item index="3-3-4">课程FAQ</el-menu-item>
                </el-submenu>
                <el-submenu index="3-4">
                  <template slot="title">
                    <span>作业管理</span>
                  </template>
                  <el-menu-item index="3-4-1">自我测试</el-menu-item>
                  <el-menu-item index="3-4-2">模拟试卷</el-menu-item>
                </el-submenu>
              </el-menu-item-group>
            </el-submenu>
            <el-menu-item index="4">
              <span slot="title">
                <i class="el-icon-setting bar-icon"></i>系统管理
              </span>
            </el-menu-item>
          </el-menu>
        </el-col>
  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值