vue3路由权限管理

发布于 2022-09-13 00:14:08 字数 1094 浏览 12 评论 0

怎么可以把这个 asyncroutes 添加进路由并挂载,打印显示已经添加成功,但是访问不到/admin/a,有没有人可以稍微指点指点,感谢万分

router.js

import { createRouter, createWebHistory } from 'vue-router'
import About from './components/About.vue'
import a from "./components/Test.vue"


export const routes = [
      path: '/about',
      name:'about',
      component: About
    },
]

export const asyncroutes  = [
  {
    path: '/admin/a',
    name: 'a',
    component: a
  }
]

export const router = createRouter({
  history: createWebHistory(),
  routes,
  linkExactActiveClass: 'active'
})

main.js

import { createApp } from 'vue'
import App from './App.vue'
import { router,asyncroutes} from './router'
import ElementPlus from 'element-plus'
import 'element-plus/lib/theme-chalk/index.css'


router.beforeEach((to,from,next) =>{
 if(localStorage.getItem("lastname")){
  console.log(router.getRoutes())
   router.addRoute(asyncroutes[0])
   console.log(router.getRoutes()) //打印显示已经添加成功,但是访问不到/admin/a
  next()
 }
 next()
})

createApp(App).use(ElementPlus).use(router).mount('#app')

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

假情假意假温柔 2022-09-20 00:14:08

为什么都是这种奇葩方案,全部添加后在路由拦截器里判断不行吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文