vue按钮怎么实现权限控制

蜗牛 互联网技术资讯 2021-12-23 340 0

这篇文章主要讲解了“vue按钮怎么实现权限控制”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue按钮怎么实现权限控制”吧!

    一、步骤

    1.定义buttom权限

    state中创建buttomPermission,用于保存后台接口返回的权限数据。

    setPermission用于接受数据,将页面权限管理传入到buttomPermission对象中。

    使用vuex:

    Vue.use(Vuex)
    
    创建vue实例
    const store = new Vuex.Store({
        state: {
            buttomPermission: {}
        },
        mutations: {
            setPermission(state, permission) {
                state.buttomPermission = permission
            }
        }
    })
    export default store

    2.定义store

    import store from './store/index.js'
    
    new Vue({
        store,
        el: '#app',
        render: h => h(App)
    })

    3.创建permission指令

    新建directives文件夹,创建permission.js文件。

    这里使用inserted函数,在被绑定元素插入父节点时检测该元素是否有权限。

    inserted( el, bindings, vnode ) { }

    4.使用permission指令

    在按钮页面引入和定义 permission指令,并且在buttom中写入指令,绑定指令中相对于的值。

     <button v-permission="'add'">添加</button>
    import permission from './directives/permission'
    directives: {permission,},

    5.删除无权限数据

    permission指令,通过bindings获取该按钮绑定的value值,然后在buttomPermission对象中找到,然后判断是否有权限,如果没有权限,则删除该节点。

    inserted(el, bindings, vnode) {
            let btnPermissionValue = bindings.value;
            let boolean =vnode.context.$store.state.buttomPermission[btnPermissionValue];
            !boolean && el.parentNode.removeChild(el);
        }

    6.传入状态管理数据

    将状态管理数据,通过setPermission方法传入到权限管理中

    let permissions = {}
    this.$store.commit("setPermission", permissions);

    二、概况

    总的来说,就是通过vuex定义一个buttomPermission权限状态对象,然后再创建一个permissions指令,通过对每个buttom按钮使用permissions指令,并且绑定该按钮特定意义的值。然后在permission.js文件中,获取当前value值,从buttomPermission中得到当前按钮是否有权限,没有则直接删除掉当前按钮节点。

    感谢各位的阅读,以上就是“vue按钮怎么实现权限控制”的内容了,经过本文的学习后,相信大家对vue按钮怎么实现权限控制这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是蜗牛博客,小编将为大家推送更多相关知识点的文章,欢迎关注!

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    评论

    有免费节点资源,我们会通知你!加入纸飞机订阅群

    ×
    天气预报查看日历分享网页手机扫码留言评论Telegram