vue-router 加载动态路由不能动态引入解决方案

当需要添加动态路由时,你绑定的component需要是你项目中的组件,并且需要静态引入,否则项目会报错,这时候封装个方法

const modules = import.meta.glob("../views/**/*.vue");
// route动态组件动态导入
export const loadView = (view: any) => {
  let res = undefined;
    for (const path in modules) {
      const dir = path.split("views/")[1].split(".vue")[0];
      if (dir === view.split("views/")[1]) {
        res = () => modules[path]();
      }
    }
  return res;
};

解释一下,modules是你views文件夹下的所有.vue文件,loadView方法形参view是组件路径的字符串,执行方法会返回与view匹配的组件,在动态路由的component属性处替换一下就ok

posted @ 2025-08-13 11:51  OvOGhostFace  阅读(12)  评论(0)    收藏  举报