美文网首页
vue自定义指令 --directive

vue自定义指令 --directive

作者: 小帅_Cs | 来源:发表于2018-11-05 14:02 被阅读0次

1)Vue.directive('自定义指令的名字',{

            inserted:function(el){  /*这个元素插入父元素的时候执行的操作*/

                el.focus();

            }

})

2)

directives:{

                  'focus':{

                        inserted:function(el){  /*这个元素插入父元素的时候执行*/

                            el.focus();

                        }

                    }

                }

钩子函数

bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。

inserted: 被绑定元素插入父节点时调用。(bind与该生命周期钩子函数作用十分类似)

update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新。

componentUpdated: 被绑定元素所在模板完成一次更新周期时调用。

简写形式

1)

Vue.directive('bgcolor',function(el,binding){

            el.style.background=binding.value;

})

2)directives:{

              /*简写 表示bind 和update的时候都会执行*/

                    'color':function(el,binding){ 

                        el.style.color=binding.value;

                    }

          }

例如下面将用自定义redirective实现拖拽:

<div id="out">

    <h1>拖拽</h1>

    <p class="a"></p>//能拖拽的标签,我没有写它的样式

    <p class="a"></p>

    <p class="a"></p>

</div>

</body>

<script>

// 这定义的是全局的自定义指令

// Vue.directive('move',function(a){

        // a.onmousedown = function(e){

        // var x = e.clientX;

        //   var y = e.clientY;

        // document.onmousemove = function(){

                    // }

                // document.onmouseup = function(){

                    // }

               // }

// })

var vm = new Vue({

            el:'#out',

                data:{

},

methods:{

},

//direvtives:('自定义的名字',function(e){函数里面的参数指是dom元素本身

})

        directives:('move',function(e){//局部     

                    a.onmousedown = function(e){

                    var x = e.clientX;

                      var y = e.clientY;

                        document.onmousemove = function(){

                        }

                    document.onmouseup = function(){

                            }

                }

            })

})

相关文章

网友评论

      本文标题:vue自定义指令 --directive

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