概述
在管理系统中权限控制是一个必不可少的组成部分,包括路由控制,菜单控制,内容区控制等。配套测试源码
详述
路由控制
辅助函数
首先可以在项目想创建 utils 文件夹,然后创建 auth.js 文件,编写需要的功能函数。
1 | export function getCurrentAuthority() { |
导航守卫
配置路由导航守卫,控制前端路由跳转。
1 | router.beforeEach((to, from, next) => { |
菜单控制
思路就是判断权限,过滤显示菜单内容。例如基于之前动态生成菜单的实现方式,可以如下处理:
1 | let menuData = []; |
精细化权限控制
权限组件
首选创建一个组件Authorized.vue
,这里用函数式组件比较合适:
1 | <script> |
然后注册组件,推荐全局注册:
1 | import Authorized from "./components/Authorized"; |
最后就可以在具体页面中使用了:
1 | <Authorized :authority="['admin']"> |
权限指令
首先创建一个指令插件 auth.js
:
1 | import { check } from "../utils/auth"; |
然后全局注册插件:
1 | import Auth from "./directives/auth"; |
最后就可以在需要的元素上使用该指令了:
1 | <a-icon |
参考
极客时间——Vue 开发实战