天天看點

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";
    },      

繼續閱讀