请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请教个问题 const routePath = path.resolve(basePath, item.path)

抱歉看了3遍,看了在下面url的解答还是没懂。https://coding.imooc.com/learn/questiondetail/2vGBE6xbZkVYNkaq.html
首先没懂的是代码里没有涉及第一路由部分是拼接父级路由动态生成子级的路由。
还是没太理解这个const routePath = path.resolve(basePath, item.path)
目前课程只到4.14这节课位置没有涉及后面的课程。目前里面在\src\router\index.js里面无论是公共路由还是私有路由path 是不会有相同且是写死在配置了的。
私有路由 父路由的path也是直接定义好的,children下节点path也是直接定义好,不存在重复。 那不是可以直接用定义好的path了吗?
为啥需要const routePath = path.resolve(basePath, item.path) 这个步骤呢?

正在回答 回答被采纳积分+3

1回答

Sunday 2023-03-03 11:49:11

你好

path.resolve 可以进行路径的拼接呀。 比如说 './basePath' + './name' 拼接,那么 path.resolve 可以自动把多余的 ./ 去除 

0 回复 有任何疑惑可以回复我~
  • 提问者 simple8514650 #1
    复制一个user的节点
    {
        path: '/user',
        component: layout,
        redirect: '/user/manage',
        meta: {
          title: 'user',
          icon: 'personnel'
        },
        children: [
          {
            path: '/user/manage',
            name: 'userManage',
            component: () => import('@/views/user-manage/index'),
            meta: {
              title: 'userManage',
              icon: 'personnel-manage'
            }
          }
    ]
    ]
    1. 对于父节点来说 如user
    const routePath = path.resolve(basePath, item.path)  
    执行的是basePath 是‘ ’,  item.path是 '/user'    运行的结果是  '/user'  
    2.对于如子节点userManage 
    if (item.children) {
          route.children.push(...generateMenus(item.children, route.path))
        }
    执行的是basePath 是'/user',  item.path是  '/user/manage'   运行的结果是   '/user/manage'
     我的理解是否有问题? 如果没问题 节点route = {
            ...item,
            children: []
          }
    节点的path其实就是路由里已经定义的path 。
    
    为啥上课的代码是需要把节点的path处理 route = {
            ...item,
            path: routePath,
            children: []
          }
    回复 有任何疑惑可以回复我~ 2023-03-03 12:10:47
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信