vue自定义指令directive

自定义指令作用:为了操作底层dom
vue设计理念就是数据驱动dom,不会针对dom进行操作。自定义指令是作者给预留的方案
实际应用-- 可以通过指令知道什么时候dom创建完成, 从而进行 依赖dom的库的初始化工作

指令注册

自定义指令类似于组件,他也有相应的生命周期,注册方式。指令注册分为两种:局部注册和全局注册
全局注册

// 使用Vue.directive 进行全局指令注册。跟组件component类似
// 这里hello是指令名
Vue.directive("hello",{
  inserted(el,binding){
    el.style.background=binding.value
  }
})

局部注册

//在组件中使用directives 进行局部指令注册。跟定义局部组件components类似
directives: {
	// 这里hello是指令名
	"hello": {
		inserted(el,binding){
			el.style.background=binding.value
		}
	}
}

指令用法

首先定义一个指令,其次在页面上引用该指令即可。
html上 使用 v-指令名 引用指定的自定义指令。
定义指令时通常需要配合使用指令生命周期,常用的有inserted,update

<div v-hello=" 'red' " >1111111111111111</div>
<div v-hello=" 'yellow' " >222222222222222</div>
<div v-hello=" mycolor " >333333333333333</div>
Vue.directive("hello",{
  inserted(el,binding){
    console.log("当前指令绑定的节点插入到页面中,就回被执行--指令的生命周期--类似mounted")
    // console.log(el) 这里el得到的是使用该指令的dom元素,即“div”
    // console.log(binding.value) 这里的binding是页面传递过来的值,即“red”
    el.style.background=binding.value
  },
  //指令更新生命周期
  update(el,binding){
    el.style.background=binding.value
  }
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值