美文网首页
vue-router 利用 $route 的 matched 属

vue-router 利用 $route 的 matched 属

作者: 兮木兮木 | 来源:发表于2020-11-20 17:27 被阅读0次
    1. 我们以一个固定的路由表来说明

      let routes = [
        {
          path: '/',
          component: () => import('../pages/layout/Layout.vue'),
          children: [
            {
              name: 'pageA',
              path: 'a',
              component: PageA,
              children: [
                {
                  name: 'pageAA01',
                  path: 'aa-01',
                  component: PageAA01
                },
                {
                  name: 'pageAA02',
                  path: 'aa-02',
                  component: PageAA02
                },
                {
                  name: 'pageAA03',
                  path: 'aa-03',
                  component: PageAA03
                },
              ]
            }
          ]
        }
      ]
      
    2. matched 顾名思义 就是 匹配,假如我们目前的路由是/a/aa-01,那么此时 this.$route.matched匹配到的会是一个数组,包含 '/''/a''/a/aa-01',这三个path的路由信息。然后我们可以直接利用路由信息渲染我们的面包屑导航。

      //demo
      <template>
       <div class="nav-wrap">
          <router-link v-for="(item, index) in navList" :key="index">
               {{ item.name }} {{index !== list.length - 1 ? '/' : ''}}
           </router-link>
        </div>
      </template>
      <script>
       export default {
          data() {
            navList: []
          },
          watch: {
            $route: {
              handler() {
                this.getNavList()
              },
              immediate: true
            }
          },
          methods: {
            getNavList() {
              this.$route.matched.filter(item => item.name);
            }
          }
        }
      </script>
      

    相关文章

      网友评论

          本文标题:vue-router 利用 $route 的 matched 属

          本文链接:https://www.haomeiwen.com/subject/vtqjiktx.html