Vue3 实现按钮权限--自义定指令(全局、局部)

4,189 阅读1分钟

我正在参加「掘金·启航计划」。

1、 场景

根据不同权限的用户角色,在前端页面显示对应需要显示的按钮。

image.png

image.png

2、 思路

权限基本都是由后端返回,那么最简单的就是后端返回的角色权限中也包含按钮权限相关数据;

拿到按钮权限数据后,可以根据页面路由去进行匹配,从而控制按钮显示与否。

这里控制显示与否的方法,可以使用vue的 自定义指令 方法。

3、 实现

  1. 获取按钮权限

根据项目实际情况,在登录后获取到按钮权限,存储下来。

(可参考)

image.png

页面显示是需要根据路由来的,所有按钮权限数据就对应着路由defaultPath 和权限btnPole。

  1. 获取当前页面路由(路由守卫)

在router下的index.js文件,通过路由守卫把路由存起来。

image.png

  1. 写自定义指令方法

新建一个js文件,写出好自定义指令的方法。

image.png

  1. 全局挂载自定义指令

在main.js文件中挂载。

导入写好的自定义指令方法;

image.png

挂载。

image.png

  1. 页面使用自定义指令

直接使用在mian.js中定义的指定字段btn;

在vue文件中用 v-btn 。

image.png

4、 局部自义定指令写法

1、在使用 <script setup 的时候,局部自定义指令可以直接以v开头的驼峰式命名;

在使用<script setup>中,任何以v开头的驼峰式命名的变量都可以被用作一个自定义指令,然后在模板中使用。

image.png

2、普通情况下,则自定义指令需要在directives选项中注册。

image.png

5、 最后

希望能给到需要的人一点点思路和帮助,加油!