博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue + vuex + directives实现权限按钮的思路
阅读量:6964 次
发布时间:2019-06-27

本文共 664 字,大约阅读时间需要 2 分钟。

遇到了一个业务场景:

某个按钮按下去之前需要先判断它是否登陆,如果没有登陆需要跳转到对应的登陆页面,否则就继续该按钮之后的操作。

对于这种问题,很显然不能每个按钮都去判断,所以我思考了一下结合自定义指令和vuex完成了相应的实现。

主要的代码实现
const directive = Vue.directive('permission-click', {  bind: (el, binding, vnode) => {    el.addEventListener('click', (e) => {      if (!store.getters.isLogin) {        store.dispatch('showLogin')      } else {        typeof binding.value === 'function' && binding.value()      }    })  }})

这里封装了一个自定义指令,添加了一个点击事件,对于已经登陆的则调用传进来的函数,否则通过vuex去控制登陆(此处的登陆是通过弹窗实现的)

自定义组件使用的时候也极为简单

...

vuex里面的showLogin这个action无非就是对login的显示隐藏flag的操作。

这里只是完成了简单的登陆权限控制,从登陆权限出发,可以加入更多的权限控制,比如根据role角色判断,然后可以全局地控制权限,且实现起来极为精简。

Github:

Authby: lyh2668

转载地址:http://slwsl.baihongyu.com/

你可能感兴趣的文章
PHP等比例缩放图片
查看>>
spring中MessageSource的配置使用方法3--ResourceBundleMessa
查看>>
Python在同一位置刷新显示进度信息
查看>>
解决获取微信用户信息 48001错误
查看>>
oracle的内存spa与pga
查看>>
laravel 常用的第三方扩展包
查看>>
使用Lombok来优雅的编码
查看>>
[LeetCode]23. Merge k Sorted Lists
查看>>
CentOS7 配置网卡 虚拟机挂载光盘 搭建本地yum源 修改主机名
查看>>
高性能专业上网行为管理设备WSG-500E开箱评测
查看>>
easyui的分页组件的displayMsg显示的信息不正确
查看>>
MySQL数据库入门——多实例配置
查看>>
ACtiiveMQ安装 Ubuntu
查看>>
四色原则
查看>>
1.sql数据处理问题
查看>>
企业管理:如何规范员工上网行为,提高员工工作效率
查看>>
LINUX创建、删除用户和用户组;修改密码
查看>>
深入理解乐观锁与悲观锁
查看>>
CocoaPods的使用
查看>>
find命令详解
查看>>