zoukankan      html  css  js  c++  java
  • 通过递归的思维来获取:包含affix: true键值对路由器的绝对路径(父路由和子路由)

    1.路由代码---4个路由对象

     var router = [
     {
        path: '/',
        component: Layout,
        redirect: '/dashboard',
        children: [
          {
            path: 'dashboard',
            component: () => import('@/views/dashboard/index'),
            name: 'Dashboard',
            meta: { title: 'Dashboard', icon: 'dashboard', affix: true }
          }
        ]
      },
      {
        path: '/documentation',
        component: Layout,
        children: [
          {
            path: 'index',
            component: () => import('@/views/documentation/index'),
            name: 'Documentation',
            meta: { title: 'Documentation', icon: 'documentation', affix: true }
          }
        ]
      },
      {
        path: '/guide',
        component: Layout,
        redirect: '/guide/index',
        children: [
          {
            path: 'index',
            component: () => import('@/views/guide/index'),
            name: 'Guide',
            meta: { title: 'Guide', icon: 'guide', noCache: true  }
          }
        ]
      },
      {
        path: '/profile',
        component: Layout,
        redirect: '/profile/index',
        hidden: true,
        children: [
          {
            path: 'index',
            component: () => import('@/views/profile/index'),
            name: 'Profile',
            meta: { title: 'Profile', icon: 'user', noCache: true }
          }
        ]
      }
    ]

    2.js代码

        // 筛选路由(父路由和子路由)中包含affix: true的
        filterAffixTags(routes, basePath = '/') {
          let tags = []
          routes.forEach(route => {
            if (route.meta && route.meta.affix) {
              const tagPath = path.resolve(basePath, route.path)
              tags.push({
                fullPath: tagPath,
                path: tagPath,
                name: route.name,
                meta: { ...route.meta }
              })
            }
            if (route.children) {
              const tempTags = this.filterAffixTags(route.children, route.path)
              if (tempTags.length >= 1) {
                tags = [...tags, ...tempTags]
              }
            }
          })
          return tags
        },

    3.最后打印出来的tags的内容如下:

  • 相关阅读:
    mysql面试知识点
    计算机网络
    BFS
    拓扑排序
    双指针
    回溯算法
    hash表 算法模板和相关题目
    桶排序及其应用
    滑动窗口
    贪心算法
  • 原文地址:https://www.cnblogs.com/pwindy/p/14736174.html
Copyright © 2011-2022 走看看