GenerateRoutes({ commit }) {
return new Promise(resolve => {
// 向后端请求路由数据
menuAPI.getMenu().then(res => {
// 处理路由
const routerData = routerDataChange(res, []);
const historyRouters = router.getRoutes();
historyRouters[0].children = routerData;
router.addRoute(historyRouters);
resolve(router.getRoutes());
})
})
}
// 处理路由数据
export function routerDataChange(router, menu, routerPath = '') {
router.forEach((r) => {
if (r.children && r.children.length > 0) {
routerPath += r.path;
menu = routerDataChange(r.children, menu, routerPath);
} else {
menu.push({
path: routerPath + r.path,
name: r.code,
meta: {
title: r.name,
icon: r.icon
},
component: loadView(r.component)
});
}
});
return menu;
}
export function loadView(view) {
// return import(`@/views/factoryManage/hazardZoning/classification/index.vue`);
// return () => import(`@/views/factoryManage/hazardZoning/fourColor/index.vue`)
// return defineAsyncComponent(() =>
// import('@/views/factoryManage/hazardZoning/fourColor/index.vue')
// )
return defineAsyncComponent(() => {
return new Promise((resolve, reject) => {
resolve('@/views/factoryManage/hazardZoning/fourColor/index.vue')
})
})
// return require(`@/views${view}`)
// return (resolve) => require([`@/views${view}`], resolve)
// return () => import('@/views/factoryManage/hazardZoning/fourColor/index.vue')
}
router.getRoutes()数据如下。
页面报错No match found for location with path "/a"
路由跳转:空白页面。
path: “/a”,试试?
{
component: () => import('../views/404')
}
我怎么修改router/index.js的路由数组?
vue怎么自动生成路由?在view目录下新建文件就行了
新建一个vue文件就自动创建向对应文件名的路由
本文向大家介绍怎样动态加载路由?相关面试题,主要包含被问及怎样动态加载路由?时的应答技巧和注意事项,需要的朋友参考一下 vue-router的addRoutes方法
需求,我的 vue3 中的 data=ref([]) 更新之后,我希望 echarts 的图标也跟着一起更新 但是目前不会,我该怎么修改
想通过v-router路由守卫和vuex实现一个动态路由,路由数据由后端返回,求一个demo参考下。