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

浙公网安备 33010602011771号