Vue3 + vite2.0 + addRoutes 动态路由

业务需求:根据后台返回的路由表进行路由加载

代码:

        比较不同的是vite的引用方式,再开发中使用 `import` 引用组件并不会报错,打包发布后会提示找不到文件,所有component组件引用部分代码调整如下:

        vite中 import() 替换为 import.meta.glob('../views/*.vue') s根据自己项目的目录层级来写引用的文件夹;

const modules = import.meta.glob('../views/*.vue')

/**
 * 动态添加路由
 */
// const addRoutes = (routes = []) => {
//   routes.forEach((item) => {
//     if (item.path) {
//       const route = {
//         path: item.path,
        component: modules['../views' + item.path + '.vue'],
//       }
//       router.addRoute(route);
//     }
//   })
// };
import router from '@/router'
import store from "storejs";

/**
 * 注册路由
 */
export const registerRoutes = () => {
  return new Promise((resolve, reject) => {
    const routerMap = store.get('router')
    // 添加404页面
    router.addRoute({
      path: "/:catchAll(.*)",
      redirect: "/404",
      name: "NotFound",
    })

    if (routerMap.length) {
      addRoutes(routerMap);
      resolve(true);
    }
  })
}
const modules = import.meta.glob('../views/*.vue')
/**
 * 动态添加路由
 */
const addRoutes = (routes = []) => {
  routes.forEach((item) => {
    debugger
    if (item.path) {
      const route = {
        path: item.path,
        component: modules['../views' + item.path + '.vue'],
      }
      router.addRoute(route);
    }
  })
};

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值