附上girhub 地址:

loever/vue-FlexPaperViewer​github.com

qq:3179689033 相互学习

我把router.js 分成router.jsroutes.js 两个文件

routes.js 页面存放 公共路由 角色路由 设置用户角色路由权限

const asyncRoutes = [{ //这里按角色份路由权限
path: "/",
component: () => import('./views/index.vue'), //这里用动态加载路由 按需加载 这样没有权限的路由就不用加载
meta: {
requireAuth: true,
roles: ['page1'] // 区分权限 这是账号A
},
children: [{
path: "/",
component: () => import('./views/indexpage.vue'),
name:'首页',
meta: {
requireAuth: true,
}
},
{
path: "/page1",
component: () => import('./components/page1/page1.vue'),
name:'账号A 1页面',
meta: {
requireAuth: true,
}
},
]
},
{
path: "/",
component: () => import('./views/index.vue'),
meta: {
requireAuth: true,
roles: ['page2'] // 这里是账号B
},
children: [{
path: "/",
component: () => import('./views/indexpage.vue'),
name:'首页',
meta: {
requireAuth: true,
}
},
{
path: "/page2",
component: () => import('./components/page2/page2.vue'),
name:'账号B 1页面',
meta: {
requireAuth: true,
}
},
]
}
]

router.js 页面 正常的添加路由 添加beforEach 路由导航 判断角色 根据角色 渲染不用页面的路由菜单

router.beforeEach((to, from, next) => {var user = sessionStorage.getItem('user') //这个判断token 我没有token 先用 user 代替var user = sessionStorage.getItem('user') // 获取账号权限 用户角色
if (to.path=='/login') { // 如果进的是登录页面 就直接进去
next() // 这一步非常重要 没有这一步就会在 登录页死循环
} else {
if (user) { //判断是否登录
if (user) { //判断是否需要权限
if (store.state.addRoutes.length <= 0) { //判断是否刷新了页面const newRoutes = asyncRoutes.filter(route => route.meta.roles.includes(user)) //从asyncRoutes 获取 当前账号的路由权限
// 提交给mutation asyncRoutes
router.addRoutes(newRoutes) // 动态的加载 newRoutes 路由权限
store.commit('setAddRoutes', newRoutes) // 吧路由权限存一份 方便判断用户是否刷新了页面
next(to.fullPath) // 用户刷新了页面 在跳回去
}
next()
} else {
next('/login')
}
} else {
next('/login') // 没有登录 返回登录页面
}
}
})

在展示路由的地方

vue 判断权限过期_vue 路由权限相关推荐

  1. 管理台权限模块 - 完整路由权限及按钮权限

    这篇文章主要讲的是动态路由添加,下篇我们再仔细说明一下按钮权限的做法, 本文基础框架在element-ui 及element-admin-template基础上进行的二次开发 动态路由权限: 首先这里 ...

  2. vue 记录滚动位置_vue 路由跳转记住滚动位置,返回时回到上次滚动位置

    方法一: 利用Keep-Alive和监听器 1.首先在路由中引入需要的模块 { path: '/scrollDemo', name: 'scrollDemo', meta: { keepAlive:t ...

  3. vue暂存功能_vue路由缓存的几种实现方式小结

    本文实例讲述了vue路由缓存的几种实现方式.分享给大家供大家参考,具体如下: 在我们的日常开发中,有时候会遇到页面的缓存,特别是电商的项目,在商品列表的一些状态都是要缓存下来的. 下面就简单介绍几种 ...

  4. vue判断是否双击_vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作...

    Vue 事件处理方法 可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码. v-on:click 单击事件 + + - - v-on:dblclick 双击事件 ...

  5. React+DvaJS 之 hook 路由权限控制

    博客 学院 下载 GitChat TinyMind 论坛 APP 问答 商城 VIP 活动 招聘 ITeye 写博客 发Chat 登录注册 原 React+DvaJS 之 hook 路由权限控制 20 ...

  6. vue根据不同权限显示图片_vue如何实现路由权限控制

    前言在实际的开发过程中,我们通常会涉及到权限的问题,不同的用户进来只能看到他对应的菜单权限,页面上的菜单渲染是比较好实现的,这里就不多提,唯一比较难的就是路由的权限控制. 解决思路目前大概有两种思路可 ...

  7. vue实现页面权限显示_Vue 实现前端权限控制

    登录&&权限流程图 前言 首先我们确定的权限控制分为三大部分,其中根据粒度大小分的更细: 登录权限控制 页面权限控制 菜单中的页面是否可以被访问 页面中的按钮 (增.删.改.查)的权限 ...

  8. vue admin 动态路由权限管理

    主要思路 通过后端接口返回数据 进行判断 (通过后端实现的权限管理有许多种),在这里 我们主要通过 关键字即匹配前端路由meta.menu值来实现权限管理通常会把路由权限列表存至vux中 箭头所指的便 ...

  9. vue实现用户登录验证 + 权限验证 + 动态路由(左侧菜单栏)

    1. 技术栈说明 vue2.6 + vue-router + vuex + element-ui 2. 开始:新建项目 前提条件:在个人电脑上安装好nodejs(我的是14.15.1)之后,利用nod ...

最新文章

  1. python装饰器实例-python装饰器实例大详解
  2. python Day5
  3. 高并发下的接口幂等性解决方案!
  4. 【David Silver强化学习公开课】-3:DP
  5. LVS(6)——NAT准备工作
  6. 曼哈顿距离和欧拉距离
  7. icewm使用心得[转]
  8. Eclipse中好用的快捷键
  9. 取代浏览器插件调试,VS Code 整合 JS 调试工具
  10. shopex网店系统数据库安装失败解决方法
  11. 日常消费软件记账项目
  12. 南京地铁行业发展策略与运营建设规模分析报告2022版
  13. matlab里的speed,matlab虚数 分析一下getspeed()函数
  14. Mysql从入门到入魔——5. 聚集、分组、子查询
  15. java简单小程序 生日快乐,跪求一祝福别人生日快乐小程序
  16. hp388服务器安装linux,hpe dl388 g10服务器安装centos7.6
  17. 安卓动画系统 - 安卓R
  18. Matlab的GUI程序转换为单独可执行的exe文件
  19. php程序员要不要转java
  20. 解释结构模型ISM-2-4

热门文章

  1. 工业大数据有哪些特征
  2. 物联网卡云平台如何分析信息数据
  3. 2×3卡方检验prism_卡方检验(最强总结)
  4. Vue3中的父子、子父组件通信
  5. Mysql生产环境表更新方案_生产环境中,数据库升级维护的最佳解决方案flyway
  6. CCPC-EDG专场——E.Buy and Delete
  7. 如何统计当前Spark程序有多少分区?
  8. 模仿QQ带侧边栏框架搭建
  9. [转载]一个任务超时退出的装饰器,用起来真方便
  10. [spring]spring boot项目实例