vue3 实现按钮权限管理

在做后台管理系统时,经常会有权限管理的功能,这里来记录一下关于按钮权限管理的实现方法

1、自定义指令 v-permission。新建js文件用来写指令代码。

javascript 复制代码
export default function btnPerms(app) {
    app.directive('permission', {
        mounted(el, binding) {
            if (!permsJudge(binding.value)) {
                el.parentNode.removeChild(el);
            }
            function permsJudge(value){
                let perms = JSON.parse(localStorage.getItem('perms')) || [];
                for (let item of perms) {
                    if (item === value) {
                        return true;
                    }
                }
                return false;
            }
        }
    });
}

2、在main.js里注入;

3、在登录后台时获取后端返回的用户权限数据,并且存入到本地;我这边是把获取数据的接口放在vuex中的

javascript 复制代码
async _getUserPermission(contxt,payload){
     let res = await getUserPermission();
     if(res && res.data){
        let {code,data,message} = res.data;
        if(code == 200){
           localStorage.setItem('perms',JSON.stringify(data.resourceList));
           contxt.commit('getPerObj',data.resourceList);
        }else {
           reject(message)
        }
    }
}

然后在登录页面调用这个方法;也可以直接在登录页面获取数据,这里就不赘述了。

获取的数据大概是这个格式

4、在需要判断权限的按钮调用指令;

这样就可以实现按钮权限了,如有问题,欢迎留言!!

相关推荐
__zRainy__1 天前
Node.js Web 框架选型指南:从 Express 到 Hono 的全景对比
前端·node.js·express·koa·nestjs·egg·fastify
西瓜有点饿1 天前
PostCSS 和 UnoCSS 的作用和区别
前端·postcss
mCell1 天前
Lua 编程入门:从基础语法到元表
javascript·算法·lua
伟大的兔神1 天前
我做了一个本地优先的 AI 图片工作台:Loomora v1.0.0 正式发布
前端·javascript·vue.js
90后的晨仔1 天前
uni-app项目 Vue3 状态管理 Pinia 完全指南:从概念到实战的深度解析
前端
90后的晨仔1 天前
uni-app 在 iOS 平台跳转页面时移除底部安全区域的完整技术指南
前端
用户938515635071 天前
React + JWT 登录鉴权底层原理与工程化实践
前端·react.js
zww89491111 天前
家政派单系统开发实战:架构设计与派单算法指南
前端·系统架构
fangzhanpeng1681 天前
(前端)2.js变量作用域样例
开发语言·前端·javascript
赵广陆1 天前
企业实战:web服务集成
前端·pycharm·fastapi