vue动态加载路由,后台获取菜单数据在component中路径拼接就找不模块,写死成一个字符串就可以。
/**
* 后台查询的菜单数据拼装成路由格式的数据
* @param routes
* @param data
*/
export function generaMenu(routes, data) {
data.forEach(item => {
const url = '@/views/system/User'
const menu = {
path: item.path === '#' ? item.name : item.path,
// 这样不行
// component: item.path === '#' ? Layout : () => import(url),
// 而下面这样就可以
component: item.path === '#' ? Layout : () => import('@/views/system/User'),
name: item.name,
meta: item.meta,
children: []
}
if (item.children !== null) {
generaMenu(menu.children, item.children)
}
routes.push(menu)
})
}
问题已解决
component: item.path === '#' ? Layout : (resolve) => require([`@/views${item.path}`], resolve),
但是还有一个问题
为什么
``() => import(
@/views${item.pat}`)
这样不行
使用的webpack版本 不支持动态加载嘛