我是靠谱客的博主 专注小兔子,最近开发中收集的这篇文章主要介绍vue自定义指令实现按钮权限鉴定,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 参照网上资料写的一个,算是解决一个小面试题。但有个问题页面加载完成一瞬间会闪一下再删除元素,这个问题我目前能想到的法子就是:

1.给页面加一层加载之类的东西,优化用户体验

2.给加了权限的按钮之类的默认样式隐藏,等鉴权完毕再考虑是否展示

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .hidden {
            display: none;
        }
    </style>
</head>
<body>
<div id="app">
    <input class="hidden" type="text" v-auth="['Button:editText', 'Button:addText', 'Button:deleteText']" value="总控">
    <input class="hidden" type="text" v-auth="'Button:addText'" value="添加">
    <input class="hidden" type="text" v-auth="'Button:deleteText'" value="删除">
    <input class="hidden" type="text" v-auth="'Button:checkText'" value="查看">
</div>
<script src="./vue2.7.js"></script>
<script>
    const authorization = ['Button:editText', 'Button:addText', 'Button:deleteText']

    // 外层函数传入能验证的数组,内层函数传入你当前要验证的值(字符串或字符串数组)
    const useAuthorization = authorization => {
        return value => {
            if (Array.isArray(value)) {
                return value.every(item => authorization.includes(item))
            } else if (typeof value === "string") {
                return authorization.includes(value)
            } else {
                throw new TypeError("参数类型错误")
            }
        }
    }

    const auth = useAuthorization(authorization)
    const vm = new Vue({
        el: "#app",
        methods: {},
        directives: {
            auth: {
                inserted: (el, binding) => {
                    const {value} = binding
                    const hasPermission = auth(value)
                    if (!hasPermission) {
                        el.parentNode.removeChild(el)
                    } else {
                        el.classList.remove("hidden")
                    }
                }
            }
        }
    })
</script>
</body>
</html>

最后

以上就是专注小兔子为你收集整理的vue自定义指令实现按钮权限鉴定的全部内容,希望文章能够帮你解决vue自定义指令实现按钮权限鉴定所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部