码迷,mamicode.com
首页 > 其他好文 > 详细

vue自定义指令的用法

时间:2021-01-08 10:52:25      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:strong   The   code   string   binding   str   val   htm   join   

1)全局注册

1.在main.js中通过Vue.directive全局注册一个指令

Vue.directive(demo, {
    bind: function (el, binding, vnode) {
      var s = JSON.stringify
      el.innerHTML =
        name:        + s(binding.name) + <br> +
        value:       + s(binding.value) + <br> +
        expression:  + s(binding.expression) + <br> +
        argument:    + s(binding.arg) + <br> +
        modifiers:   + s(binding.modifiers) + <br> +
        vnode keys:  + Object.keys(vnode).join(, )
    }
})

2.在页面上使用

<div id="app">
    <div  v-demo:foo.a="message"></div>
</div>

3.data中定义变量message

var vm = new Vue({ //vue根实例
    el:#app,
    data:{
        obj:{},
        inputval:‘‘,
        message: hello!,
    },   
     
})

2)局部注册

1.直接在组件中注册

var vm = new Vue({ //vue根实例
    el:#app,
     data:{
        obj:{},
        inputval:‘‘,
        message: hello!,
    },
  directives: {               
        pin:{
            bind: function (el, binding, vnode) {
            el.style.position = ‘fixed‘
            el.style.top = binding.value + ‘px‘
            
        }
        }       
      },
        })

2.在页面中使用

<p v-pin="200">Stick me 200px from the top of the page</p>

3)动态组件

var vm = new Vue({ //vue根实例
    el:#app,
     data:{
        obj:{},
        inputval:‘‘,
        message: hello!,
    },
  directives: {               
        pin:{
            bind: function (el, binding, vnode) {
            el.style.position = fixed
            var s = (binding.arg == left ? left : top)
            el.style[s] = binding.value + px
            
        }
        }       
      },
        })

2.在页面中使用

<p v-pin:[direction]="200">I am pinned onto the page at 200px to the left.</p>

 

vue自定义指令的用法

标签:strong   The   code   string   binding   str   val   htm   join   

原文地址:https://www.cnblogs.com/lita07/p/14241381.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!