vue element-ui动态面包屑导航

vue element-ui动态面包屑导航

直接上代码

一、template代码

// 这是单独的组件
<template>
  <el-breadcrumb separator-class="el-icon-arrow-right">
  	// 首页我是写死的,其他的遍历出来
    <el-breadcrumb-item :to="{ name: 'home' }">首页</el-breadcrumb-item>
   	// 因为路由是后台返回的,所以取title是按照后台格式来取的
    <el-breadcrumb-item v-for="(item, index) in breadList" :key="index">{{
      item.meta.title
    }}</el-breadcrumb-item>
  </el-breadcrumb>
</template>

二、script代码

export default {
 // 初始化数据对象
  data() {
    return {
      breadList: []
    };
  },
 // 监听属性
  watch: {
    // 监听路由
    $route(val) {
      // 调用获取路由数组方法
      this.getBreadList(val);
    }
  },
  // 自定义事件
  methods: {
    /**
     * @description 获取路由数组
     * @params val 路由参数
     * @author tw
     */
    getBreadList(val) {
      // 过滤路由matched对象
      if (val.matched) {
        let matched = val.matched.filter(item => item.meta && item.meta.title);
        // 拿到过滤好的路由v-for遍历出来
        this.breadList = matched;
      }
    }
  }
}

三、css代码
css样式是放在一个单独的样式文件夹里面

/* 面包屑导航 */
.el-breadcrumb {
    @include ptrbl(16px,16px,16px,16px);
    box-sizing: border-box;
    background: $white;
    border-bottom: 1px solid #EEE;
}

以上就是面包屑的制作过程了,谢谢~~!

你可能感兴趣的:(vue)