vue--按钮级别的权限控制+插件的使用

 

实现原理是根据v-if=true则展示按钮,否则不展示。

实现步骤:

1,用户登录成功后,将获取到的permissions放到localStorage进行保存。

2,写一个全局方法。此方法的入参为当前按钮的权限,比如somebtn:edit。最终输出的是布尔值,当前用户是否拥有此按钮的权限。

3,在组件中使用此方法。

 

具体讲讲第2步的全局方法应该怎么使用:

全局方法的理论,他其实是向vue实例(Vue.prototype)添加的一个方法,这个方法在Vue初始化之前进行添加,这样Vue实例化之后,所有的组件都可以使用这个方法。根本上讲,就是Vue构造函数的一个实例方法。

使用方法,官方简单介绍了一下,那么这里就稍微详情的讲一下:

1,新建一个hasAuth.js文件,export的是Plugin:

 1 let permissonFromStorage= window.localStorage;
 2 
 3  
 4 
 5 Plugin.install = function (Vue) {
 6 
 7   Vue.prototype.$auth = function (permission) {
 8 
 9     return permissonFromStorage.indexOf(permission)>-1;
10 
11   };
12 
13 };
14 
15 Vue.use(Plugin);
16 
17  
18 
19 export default Plugin;

 

 

2,main.js中,引入hasAuth

 1 import '@plugins/globalMethod'; 

 

3,页面上使用:

1 Data:
2 
3 data(){
4 
5 return{
6 
7 hasSomeAuth:this.$auth(‘btn:edit’)}
8 
9 }

 

Template:

<button v-if=”hasSomeAuth”>按钮</button>

posted @ 2020-09-30 11:13  熊大熊二李老板  阅读(1138)  评论(0编辑  收藏  举报