当前位置: 首页 > Web前端 > vue.js

vuerouter动态添加路由

时间:2023-03-31 23:26:33 vue.js

路由分为静态路由,比如预先写好的,公共路由,比如:404,登录等,有的根据权限接口返回,有的页面模块路由是动态添加的,如:用户在处理权限时,可以先允许一些不需要权限认证的路由,如下://开启路由,可以直接访问constALLOW_ROUTES=['/login','/buy',//...];具体的Route拦截都是在router.beforeEach中处理的。首先,如果没有登录,直接跳转到登录页面);return;}如果登录,使用router.addRoutes添加路由if(isLogin&&(sessionStorage.getItem('curPath')||to.matched[0].path==='*')){sessionStorage.removeItem('当前路径');//恢复路由(防止路由重复)router.matcher=newVueRouter({//mode:'history',routes}).matcher;router.addRoutes(routes:Array);//添加路由//util.generateMenu();//生成菜单,视具体情况而定next({path:to.path});return;}动态添加更多路由规则。参数必须是符合routes选项要求的数组。curPath用于辅助处理router.afterEach(to=>{//保存路径if(to.path!=='/login'){sessionStorage.setItem('curPath',JSON.stringify({path:to.path}));}})动态路由主要是基于业务。编写一个公共处理方法并不容易。什么时候添加路由要自己判断,比如:刷新、注销、重新登录、不匹配等操作是否满足如果还是遇到路由重复的问题,可能是由于在当前页面上推送相同的路由。这里可以先判断if(router.currentRoute.name!=='login'){router.push({name:'login'})}写到最后,欢迎关注作者:http:///www.techshare100.com/