动态加载路由

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// vue-cli
export const loadView = (view: unknown) => {
return () => import(`@/views/${view}.vue`)
}

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

export const loadView = (view: any) => {
let res
for (const path in modules) {
const dir = path.split('views/')[1].split('.vue')[0]
if (dir === view) {
res = () => modules[path]()
}
}
return res
}