天天看点

vue+vue-route实现面包屑

<div>
        <div v-for="(item,index) in levelList" :key="item.path" style="display:inline">
        // 如果是最后一个的话
          <span v-if="index==levelList.length-1">{{ item.meta.title}}</span>
          // 如果不是最后一个的话
          <a v-else style="color:black" @click.prevent="handleLink(item)">{{ item.meta.title }}></a>
        </div>
  </div>      
methods: {
    getBreadcrumb() {
      // 这里做一个筛选,如果有title,则进行显示
      let matched = this.$route.matched.filter(
        item => item.meta && item.meta.title
      );
      // 这里是为了将首页插入到面包屑中
      const first = matched[0];
      if (!this.isindex(first)) {
        matched = [{ path: "/admin/index", meta: { title: "首页" } }].concat(
          matched
        );
      }
      // 这里把路由信息加入到数组中
      this.levelList = matched.filter(
        item => item.meta && item.meta.title && item.meta.breadcrumb !== false
      );
    },
    isindex(route) {
      const name = route && route.name;
      if (!name) {
        return false;
      }
      return name.trim() === "index";
    },      

继续阅读