最近在做公司后台管理系统的时候,涉及到了权限,在通过后台获取到数据后使用router.addRoutes()时不起作用,最终发现左侧菜单组件中的路由是根据this.$router.options.routes来渲染的,最终使用了Vuex中的数据来渲染的; this.$router.options.routes说明:options是传递给vuerouter构造函数的对象,之后没有修改(也就是vue实例...
动态路由是通过后端接口返回的数据生成的路由数组,遍历数组对象的component,通过const loadView = (view) => { return (resolve) => require([@/views/${view}], resolve)},给路由配置动态组件。 在router.beforeach中,通过router.addRoutes,将配置好的动态路由传入 结果就是静态路由页面的懒加载有效,只加载当前...
在vue-router 中使用addRoutes 添加动态路由无效. import Vue from 'vue' import Router from 'vue-router' import Layout from '@/views/layout' const _import = comp => require(`@/views/${comp}`).default Vue.use(Router) //全局静态路由 const constantRouters = [ { path: '/login', name: 'l...
such as: ['admin'] or ,['developer','editor']const{roles}=awaitstore.dispatch('user/getInfo')// generate accessible routes map based on rolesconstaccessRoutes=awaitstore.dispatch('permission/generateRoutes',roles)// dynamically add accessible routesrouter.addRoutes(accessRoutes)👀👀🚩👀👀...
报的第一个错:Vue.use(VueRouter)报错 Uncaught TypeError: Cannot read properties of undefined (reading 'use') 我百度半天才知道,我安装的环境是vue3和vue-cil4,教程里教是比较老的版本,写法不一致导致的错误,在vue3和vue-cil4中不能直接 import Vue from 'vue' 和 Vue.use。
分析一下上面的情景:首先这个警告只会在用户重新登录的时候出现,登录的时候我们做的唯一跟路由相关的事情就是动态添加路由,所以问题肯定出在 router.addRoutes(routes)这里,其次这里又分了两种情况:有刷新和无刷新。在无刷新的情况下会报这个警告,有刷新就不会报这个警告。那么有刷新和无刷新有什么区别呢?
addRoutes有效果,直接在浏览器访问可以路由成功,但是this.$router.options.routes数组里原来初始化的路由规则不会改变需要自己手动添加,另外即使手动向this.$router.options.routes数组添加了规则,刷新页面改数组里的规则又会恢复成初始化的样子。本来发现能用了后还是很振奋的,可是后来发现我在创建Vue实例...
(accessRoutes) router.addRoutes(accessRoutes) next({ ...to, replace: true }) } catch (error) { await store.dispatch('user/resetToken') Message.error(error || 'Has Error') next(`/login?redirect=${to.path}`) NProgress.done() } } } } else { if (whiteList.indexOf(to.path) !==...
router.addRoutes(params)// 添加路由} 刷新页面时,在router.onReady中添加动态路由,当页面刷新后,路由加载完成后,会执行router.OnReady方法,在这个方法中请求权限路由添加进入就可以了,并且这个方法只执行一次,即动态路由添加完成后,不执行这个方法,仅在刷新后执行一次 ...