vue+elementUI动态生成面包屑导航教程


Posted in Javascript onNovember 04, 2019

效果如下所示:

vue+elementUI动态生成面包屑导航教程

项目需要动态生成面包屑导航,并且首页可以点击.其余为路径显示

<el-menu :unique-opened="true" router :default-active="$route.path" @select="handleSelect">
    <div class="user-menu-box" v-for="menu in menus" :key="menu.id">
      <el-menu-item v-if="!menu.child" :index="menu.path">
        <icon :name="menu.icon" :w="20" :h="20"></icon>
        <span slot="title" v-text="menu.name"></span>
      </el-menu-item>
      <el-submenu v-if="menu.child" :index="menu.path">
        <template slot="title">
          <icon :name="menu.icon" :w="20" :h="20"></icon>
          <span slot="title" v-text="menu.name"></span>
        </template>
        <el-menu-item-group>
          <el-menu-item v-for="subMenu in menu.child" :key="subMenu.id" v-text="subMenu.name"
            :index="subMenu.path"></el-menu-item>
        </el-menu-item-group>
      </el-submenu>
    </div>
</el-menu>

上面的代码是elementUI组件的样式,根据项目需要做了修改,搬运的时候根据项目自己改改

export default {
  data () {
    return {
      activeMenu: '',
      indexBreadcrumbs: [],
      menus: [{
        id: '1',
        name: '门户管理',
        icon: 'menhuguanli',
        path: '#2',
        child: [{
          id: '1-1',
          name: '轮播图',
          path: '/backstage/protaManage/turns'
        }, {
          id: '1-2',
          name: '基础数据',
          path: '/backstage/protaManage/basis'
        }, {
          id: '1-3',
          name: '分类管理',
          path: '/backstage/protaManage/classify'
        }, {
          id: '1-4',
          name: '内容发布',
          path: '/backstage/protaManage/content'
        }]
      }, {
        id: '2',
        name: '我的云盘',
        icon: 'yunpan',
        path: '/backstage/yunManage'
      }, {
        id: '3',
        name: '管理菜单',
        icon: 'shezhi',
        path: '/backstage/menusManage'
      }, {
        id: '4',
        name: '编辑板块',
        icon: 'fabuzhongxin',
        path: '/backstage/editPlate'
      }]
    }
  },
  watch: {
    $route () {
      this.handChange()
    }
  },
  computed: {
    breadcrumbList () {
      let breadcrumbs = []
      let menuList = this.menus
      this.indexBreadcrumbs.map(item => {
        for (let i = 0; i < menuList.length; i++) {
          if (item === menuList[i].path) {
            breadcrumbs.push(menuList[i])
            if (menuList[i].child) {
              menuList = menuList[i].child
            }
            break;
          }
        }
      })
      return breadcrumbs
    }
  },
  methods: {
    handChange () {
      this.$emit('hand-change', this.breadcrumbList)
    },
    handleSelect (index, indexPath) {
      this.indexBreadcrumbs = indexPath
    }
  },
  created () {
    this.handChange()
  }
}

上面的代码是模拟的数据,调用elememtUI的组件导航菜单的中的@select方法,有两个参数,可以自行打印

vue+elementUI动态生成面包屑导航教程

然后在computed中计算当前选中的是哪一部分,取到返回值,然后$emit传给父组件,

<el-breadcrumb separator-class="el-icon-arrow-right">
   <el-breadcrumb-item :to="{ path: '/backstage' }">首页</el-breadcrumb-item>
   <el-breadcrumb-item v-for="o in breadcrumbList" :key="o.id">{{o.name}}
   </el-breadcrumb-item>
 </el-breadcrumb>

父组件中取到子组件传过来的值后,直接渲染就行了

Javascript 相关文章推荐
javascript 正则替换 replace(regExp, function)用法
May 22 Javascript
jQuery 全选/反选以及单击行改变背景色实例
Jul 02 Javascript
jQuery 事件的命名空间简单了解
Nov 22 Javascript
jquery获取复选框的值的简单实例
May 26 Javascript
Javascript小技能总结(推荐)
Jun 02 Javascript
微信小程序实现全国机场索引列表
Jan 31 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
Jul 24 Javascript
js根据需要计算数组中重复出现某个元素的个数
Jan 18 Javascript
简单学习5种处理Vue.js异常的方法
Jun 17 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
Mar 09 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
Jul 30 Javascript
如何在 Vue 中使用 JSX
Feb 14 Vue.js
VUE+elementui面包屑实现动态路由详解
Nov 04 #Javascript
Vuex,iView UI面包屑导航使用扩展详解
Nov 04 #Javascript
vue双向绑定数据限制长度的方法
Nov 04 #Javascript
使用p5.js临摹动态图片
Nov 04 #Javascript
p5.js绘制创意自画像
Nov 04 #Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
Nov 04 #Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
Nov 04 #Javascript
You might like
php解决约瑟夫环示例
2014/04/09 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
Laravel与CI框架中截取字符串函数
2016/05/08 PHP
学习ExtJS Panel常用方法
2009/10/07 Javascript
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
2015/10/10 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
Vue from-validate 表单验证的示例代码
2017/09/26 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
浅析vue-router原理
2018/10/19 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
Vue 实现一个命令式弹窗组件功能
2019/09/25 Javascript
python算法学习之基数排序实例
2013/12/18 Python
Python开发常用的一些开源Package分享
2015/02/14 Python
python-str,list,set间的转换实例
2018/06/27 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
教师自荐书
2013/10/08 职场文书
毕业生的自我鉴定
2013/10/29 职场文书
精彩的广告词
2014/03/19 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
家长对学生的评语
2014/04/18 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
安全隐患整改报告
2014/11/06 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
教师辞职信范文
2015/02/28 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
创业计划书之烤红薯
2019/09/26 职场文书