Vue 权限拦截(routeGuard)能否做到【不跳转路由】显示权限错误页?

Vue 权限拦截(routeGuard)能否做到【不跳转路由】显示权限错误页?

常规操作: 没有权限跳转到 /404 路由,显示【无权限】提示

希望:当访问到一个没有权限的路由时,浏览器的【路由地址、顶部菜单,侧边菜单】 都不变化,仅在内容区显示【无权限】提示。


回答:

不知道你的路由是咋配置的,一般会把 Header 和 Aside 放在一个 Home.vue

const router = new Router({

routes: [

path: '/error-page',

component: () => import('@/Home.vue'), // 包含 Header 和 Aside 组件,

children: [

{

path: '404',

component: () => import('@/404.vue') // 404 显示组件

}

]

]

})

跳转到/error-page/404 即可

补充
如果希望跳转到 /404 就显示这个,
要不在404界面使用 Header 和 Aside 组件(简单)
要不就是给一级路由 '/' 绑定组件 Home,然后用路由里面的参数控制 Header 和 Aside 是否显示(所有不显示 Home 的路由都要配置这个参数,类似 meta: { showHome: false })


回答:

感觉你就是需要一个高阶组件,vue不太会用,react大概就是这样

const wrapper = (COMP) => {

return (props) => <>

<header>

<sider>

{

有权限?<COMP {...props} /> : <404/>

}

</>;

}

const A = wrapper(组件A)

const B = wrapper(组件B)

以上是 Vue 权限拦截(routeGuard)能否做到【不跳转路由】显示权限错误页? 的全部内容, 来源链接: utcz.com/p/932962.html

回到顶部