小编Gee*_*osh的帖子

在 Vue.js 中创建自定义条件渲染指令

我正在尝试解决如何制作自定义 Vue 条件指令。我知道我可以编写一个全局方法并在 v-if 中调用它,但为了代码清晰,我想要一个自定义指令。

目的是用指令装饰一个元素并将 Guid 传递给它(这一切都是为了根据用户权限处理条件 rednering): v-permission="'4ECE1FD4-4019-4CA2-AB9E-0A555CCBDB5B'"

目前,我只是display: none在指令的bind方法中添加 到元素,这对于隐藏内容很好,但如果元素从未被渲染,那么性能会更好。

我有什么想法可以实现这一目标吗?

当前指令代码如下:

import Vue from 'vue'

Vue.directive('permission', {
  bind: function (el, binding, vnode) {
    if (binding.value) {
      let hasPermission = 
vnode.context.$store.getters.hasApiPermission(binding.value)
      if (!hasPermission) {
        el.style.display = 'none'
      }
    } else {
      console.error('You must specify a permission ID')
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vuejs2

4
推荐指数
1
解决办法
2708
查看次数

标签 统计

javascript ×1

vue.js ×1

vuejs2 ×1