vue2.0自定义指令方式

分析:当我们在vue中使用默认的指令中(v-if,v-show),当然在实际的场景中,由于不能满足需求的时候。就需要自定义指令了,下面是自定义指令的方式,用于扩展htm结构

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>自定义指令</title>
  <script src='https://unpkg.com/vue'></script>
</head>
<body>
<div id='app'>
    <input v-myshow="isShow" type="text" placeholder="请输入选项" value='aa'> 
    <div v-demo="{color:'red',text:'hello'}">this is a directive</div>
    <div v-show="true" v-demo="{color:'green',text:'hello'}">this is another directive</div>
</div>
<script>
//指令中的多个值形式   传入对象字面量的形式  指令接受所有合法的js表达式
//自定义的指令的形式  自定义指令的形式  el binding参数
Vue.directive('myshow',function(el,binding){//定义全局的指令 用于模拟默认的v-show
    console.log("---")
    console.log(binding.value)
    if(binding.value == true){
      el.style.display="block"
    }else if(binding.value == false || binding.value == undefined){
       el.style.display="none"
    }
});
var vm = new Vue({
  el:"#app",
  data(){
    return{
      isShow:true,
      foo:'',
    }
  },
  methods:{


  },
  directives:{
    demo:{
      inserted(el,binding){//局部指令自定义指令的参数
          console.log(el);
          console.log(binding.value.color);
          console.log(binding.value.text);
          //自定义指令的以后,可以得到绑定值  做出相应的处理
          el.style.color=binding.value.color
      }
    }
  }
})
</script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值