美文网首页Vue.js专区Vue.js开发技巧
vue + vuex + directives实现权限按钮的思路

vue + vuex + directives实现权限按钮的思路

作者: 一横Coder | 来源:发表于2017-10-24 09:24 被阅读0次

遇到了一个业务场景:

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

对于这种问题,很显然不能每个按钮都去判断,所以我思考了一下结合自定义指令和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去控制登陆(此处的登陆是通过弹窗实现的)
自定义组件使用的时候也极为简单

<div class="" v-permission-click="doSomething">
  ...
</div>

vuex里面的showLogin这个action无非就是对login的显示隐藏flag的操作。
这里只是完成了简单的登陆权限控制,从登陆权限出发,可以加入更多的权限控制,比如根据role角色判断,然后可以全局地控制权限,且实现起来极为精简。

Github: https://github.com/lyh2668
Authby: lyh2668

相关文章

  • vue + vuex + directives实现权限按钮的思路

    遇到了一个业务场景: 某个按钮按下去之前需要先判断它是否登陆,如果没有登陆需要跳转到对应的登陆页面,否则就继续该按...

  • 关于 vue-router 动态权限 实现的方案

    基于vue-router的动态权限实现方案vue+vue-router+vuex,利用vue-router2.2....

  • Vuex模拟实现

    实现思路 实现install方法vuex是vue的一个插件,所以和模拟VueRouter类似,先实现Vue插件约定...

  • 2019-10-25 vue前端按钮权限控制隐藏

    vue前端按钮权限控制隐藏权限控制描述如何实现1、储存权限数据2、权限判断方法3、设置vue自定义指令4、最终代码...

  • vue

    $ cnpm install vue vuex 流程讲解 使用vuex的方式,点击按钮 → dispatch ac...

  • vue2.0 + elementUi 实现无限tab式页面

    使用elementUi的tabs组件 + vuex 实现点击菜单或者点击按钮新增一个tab标签页 一、思路 由于之...

  • vuex

    官方推荐的数据框架:在vue的开发中 vue实现视图层的开发,vuex来实现数据层,实现数据共享 vuex是整个虚...

  • vuex源码分析(一)——初始化vuex

    本文参考珠峰架构公开课之vuex实现原理 vuex是基于vue框架的状态管理。 如何在vue项目中初始化vuex?...

  • 用addRoutes实现动态路由

    原文地址前端路上,转载请注明出处 之前在基于Vue实现后台系统权限控制一文中提到路由权限的实现思路,因为不喜欢在每...

  • vue全家桶实现原理

    一:vue-router(hash 实现) 二: vuex

网友评论

    本文标题:vue + vuex + directives实现权限按钮的思路

    本文链接:https://www.haomeiwen.com/subject/clqtpxtx.html