Vue 自定义指令

<div>
<div class="card" v-pin:aaa.top.right="card1.pinned">
     <button @click="card1.pinned = !card1.pinned">定住\取消</button>
        监控到开发贷款的vajfkdjg
</div>
<div class="card" v-pin="card2.pinned">
      <a href="#" @click="card2.pinned = !card2.pinned"> pin it </a>
        监控到开发贷款的vajfkdjg
</div>
 监控到开发贷款的
等很多字......
</div>
<script type="text/javascript" src="https://cdn.jsdelivr.net/vue/2.1.3/vue.js"></script>
<script type="text/javascript">
//v-XXX 都是默认的指令 
//自定义组件,属性,也可以自定义指令
//自定义指令的修饰符和传参

Vue.directive("pin",function(el,binding){
    console.log(0,el)//指向的是有pin属性的div
    console.log(1,binding)//指向的是div的属性,默认的
    var pinned = binding.value;
    var position = binding.modifiers;
    var warning = binding.arg;
    if(pinned){
        el.style.position = "fixed";
        for(var key in position){
            if(position[key]){
                el.style[key] = "10px"
            }
        }

        if(warning==="true"){
            el.style.background = "red"
        }
        if(abc==="aaa"){
            el.style.border = "2px solid cyan"
        }
    }else{
        el.style.position = "static"
    }
})
//初始化父组件
    var parent = new Vue({
        el:"#app",
        data :{
            card1 : {
                pinned:false
            },
            card2 : {
                pinned:false
            },
            price:10,
        }
    })
</script>

打印的binding的结果


binding的结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • vue官方文档中介绍了两种自定义指令的方法:全局自定义和局部自定义。 全局自定义组件可以在main.js中直接注册...
    Erric_Zhang阅读 413评论 2 1
  • >> 阅读官网 当页面加载时,元素将获得焦点 (注意:autofocus 在移动版 Safari 上不工作)。事实...
    竹小星阅读 451评论 2 3
  • Vue.directive (自定义指令) 使用方法,类似v-model等内置指令,2.0的为了提升性能,所以在指...
    梦之卿知阅读 5,622评论 1 1
  • Vue指令 Vue的指令以v-开头,作用在HTML元素上,将指令绑定在元素上,给绑定的元素添加一些特殊行为。 例如...
    syd192阅读 1,315评论 0 9
  • 本文在有些需要解释说明的地方引用了知乎文章屌丝想买房……和Scrapy入门教程 本篇教程中将按照下列五步实现标题所...
    Iron慢阅读 1,251评论 0 5