关于vue-router当中addRoutes的使用

关于addRoutes

使用背景 :
权限控制,判断用户是否有该页面的权限,可以使用router.addRoutes([设置路由]);
优点:当用户没有权限,在浏览器输入地址不会出现该页面,直接跳转到配置的404页面;

/* 默认初始路由 */

export default new Router({
    routes: [
        {
            path: '/login',
            component: Login
        }
    ]
})

/* 准备动态添加的路由 */
***这块可以通过后端接口获取该用户具有那些页面的权限

export const DynamicRoutes = [
	    {
	        path: '',
	        component: Layout,
	        name: 'container',
	        redirect: 'home',
	        meta: {
	            requiresAuth: true,
	            name: '首页'
	        },
	        children: [
	            {
	                path: 'home',
	                component: Home,
	                name: 'home',
	                meta: {
	                    name: '首页'
	                }
	            }
	        ]
	    },
	    {
	        path: '/403',
	        component: Forbidden
	    },
	    {
	        path: '*',
	        component: NotFound
	    }
	]

在vuex添加了一个permission模块来处理权限。

actions: {
async FETCH_PERMISSION({ commit, state }) {
/* 获取后台给的权限数组 */ 获取的路由
let permissionList = await fetchPermission()

    /*  初始路由 */
    let initialRoutes = router.options.routes

    /*  动态添加路由 */
    router.addRoutes(DynamicRoutes)

    /* 完整的路由表 */
    commit('SET_PERMISSION', [...initialRoutes, ...permissionList])
}

}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值