vue自定义指令(扩展的HTML)

指令: 扩展html语法

自定义指令:

属性:

Vue.directive(指令名称,function(参数){

this.el -> 原生DOM元素

});

<div v-red="参数"></div>

指令名称: v-red  ->  red

 

* 注意: 必须以 v-开头

<script> Vue.directive('red',function(){ this.el.style.background='red'; }); window.onload=function(){ var vm=new Vue({ el:'#box', data:{ msg:'welcome' } }); }; </script> </head> <body> <div id="box"> <span v-red> 这是实例 </span> <span v-red>
            这是实例
</span> <span v-red>
            这是实例
</span>
</div></body>
实例2:
<script>
        Vue.directive('red',function(color){
            this.el.style.background=color;
        });

        window.onload=function(){
            var vm=new Vue({
                el:'#box',
                data:{
                    a:'blue'
                }
            });
        };

    </script>
</head>
<body>
    <div id="box">
        <span v-red="a">
            asdfasd
        </span>
    </div>
实际上相当于data中的a先传给v-red中的a,然后传给自定义指令中的color,更清晰的自定义指令传参如下
<script>
        Vue.directive('red',function(color){
            this.el.style.background=color;
        });
        window.onload=function(){
            var vm=new Vue({
                el:'#box'
            });
        };
    </script>
</head>
<body>
    <div id="box">
        <span v-red="'blue'">
            asdfasd
        </span>
    </div>
</body>
其原理都是事件绑定,如下
<script>
        Vue.directive('red',{
            bind:function(){
                this.el.style.background='red';
            }
        });
        window.onload=function(){
            var vm=new Vue({
                el:'#box'
            });
        };
    </script>
</head>
<body>
    <div id="box">
        <span v-red>
            asdfasd
        </span>
    </div>

</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值