vue3按钮级别权限控制

官网介绍

实现流程

1.mian.ts中注册自定义指令

import { createApp } from 'vue';
import App from './App.vue';
const app: any = createApp(App);
// 注册 (函数指令)
app.directive('permission', (el, binding, vnode) => {
	//binding.value=>使用v-permission绑定的值
	//与后端返回的数组进行比对,如果后端返回的数组中的值包含binding.value
	//则有权限,该按钮展示,否则隐藏
   if (sessionStorage.getItem('userInfo')!.indexOf(binding.value) > -1) 						   {
      // alert('有权限');
    } else {
      el.parentNode && el.parentNode.removeChild(el);
      // alert('无权限,删除改节点');
    }
    // 这将被作为 `mounted` 和 `updated` 调用
  })
  .use(router)
  .mount('#app');

2.在app.vue或者别的文件中拿到后端返回的权限数组,并存到sessionStorage中

此处用sessionStorage模拟后端接口返回数据

    sessionStorage.setItem('userInfo', '[classAdd,classEdit]');

3.在页面中进行使用,比如在class.vue中

<template>
//如果后端饭后的值中不含classReset,则该按钮不会显示
<button v-permission="['classReset']">重置</button>
<button v-permission="['classAdd']">添加</button>
</template>

<script setup lang="ts">
onMounted(() => {

});
</script>
<style lang="less" scoped></style>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值