Vue3 设置动态路由出现Error: Unknown variable dynamic import

1.问题:vue3做动态路由时出现了报错

  • 这个问题报错的出现因为我们定义 component 路径的时候报错的,我用的是拼接的形式,但官方不支持,下面是错误的代码:

    router.addRoute('main', {
      path: '/main/analysis/overview',
      //这样的做法官方会直接给我们报错
    	component: () => import(`../views${subMenu.url}/${subMenu.url.split('/')[3]}.vue`)
    })
    

2.解决:使用 import.meta.glob

  • 解决方法就是使用 import.meta.glob,获取vue文件的相应路径,它返回的一个对象

    {
      ../views/main/Main.vue: () => import("/src/views/main/Main.vue?t=1693659027055")
    	../views/main/product/goods/goods.vue: () => import("/src/views/main/product/goods/goods.vue")
    }
    

    解决代码:

    //匹配相应路径的所有文件
    const modules = import.meta.glob('../views/main/**/*.vue')
    const filePath = modules['../views/main/product/goods/goods.vue']
    router.addRoute('main', {
      path: '/main/product/goods',
    	component: filePath
    })
    

总结:vue2好像是可以用拼接的方式,但vue3的时候就会出现报错,只能用 import.meta.glob 获取路径的方式,目前只知道这种方式处理,如果有更好的方法请告诉我!!!!谢谢!!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值