// {
// path: 'fbasedata',
// name: '模板库',
// iconclass:'el-icon-goods',
// component:'@/commponents/view/com/public-center.vue',
// show: true,
// children: [
// {
// name: "患者资料1",
// show: true,
// path: '/fbasedata/PatientData',
// component:'@/commponents/view/baseData/PatientData/index.vue'
// },
// ]
// },
// {
// path: 'fperson',
// name: '个人中心',
// iconclass:'el-icon-goods',
// component:'@/commponents/view/com/public-center.vue',
// show: true,
// children: [
// {
// path:'/fsettings',
// name:'我的资料',
// show:true,
// iconclass:'el-icon-setting',
// component:'@/commponents/view/systemManage/settings/index.vue'
// }]
// }
];
// debugger
// var menu = this.$store.state.user.menu;
// MenuUtils(routers,menu);
// console.log(routers);
// this.$store.commit('setmenus',routers);
// console.log(routers);
// this.$router.options.routes[1].children=this.$router.options.routes[1].children.concat(routers);
// this.$router.addRoutes(routers);
一开始我是这样设置的,因为存在登录组件和home组件不需要动态,所以这里给了嵌套组件进行动态懒加载的方式,但是奇怪的是出现的页面一片空白,然后我就开始琢磨,怎么回事,
var routers = [];
var menu = store.state.user.menu;
MenuUtils(routers,menu);
console.log(routers);
store.commit('setmenus',routers);
console.log(routers);
var routerarr = router.options.routes[1].children;
// for(var i = 0,len = routers.length;i<len;i++){
// var item = routers[i];
// if( routerarr.indexOf(item.name) ==-1){
// routerarr.push(item);
// }
// }
routerarr.push(...routers);
router.addRoutes(router.options.routes);
console.log(router.options.routers);
重点就在router.addRoutes(router.options.routes);每一次的addroutes都是重新获取,会把router里的路由清空一遍。