vue的自定义指令

vue的自定义指令

使用场景:对普通DOM 元素进行底层操作
全局自定义指令
id:指令id,definition:定义对象

Vue.directive(id,definition)

局部自定义指令:使用directives选项
自定义指令的钩子函数

钩子函数描述
bind()构造函数,第一次绑定时调用,只调用一次
inserted()被绑定元素插入父节点调用,父节点存在即调用
update()第一次是紧跟在 bind 之后调用,获得的参数是绑定的初始值;以后每当绑定的值发生变化就会被调用,获得新值与旧值两个参数。
compentUpdated()被绑定元素所在模板完成一次周期更新时调用
unbind()析构函数,接触绑定时调用,只调用一次

绑定指令属性

el绑定指令的元素
binding绑定对象,用于传值
expression指令表达式
arg参数
name指令id
modifiters指令修饰符
descriptor指令解析结果
vm上下文viewmodel
vnodevue编译的虚拟节点

自定义指令的代码格式

Vue.directive('my-directive', {
    bind: function () {
        ...
    },
    update: function (newValue, oldValue) {
        ...
    },
    unbind: function () {
        ...
    }
})

自定义指令的简单案例实现
input输入框自动获取焦点
实现效果
在这里插入图片描述
具体代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>vue自定义指令-input自动聚焦</title>
</head>
<body>
  <div id="app">
    <input type="text" v-focus>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    Vue.directive(
      'focus',{
        inserted:function(el){
          el.focus()
        }
      }
    );
    var app =new Vue({
    el:'#app'
    })
  </script>  
</body>
</html>

自定义指令实现改变背景颜色
实现效果
在这里插入图片描述
具体代码

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>自定义指令——背景加红</title>
</head>

<body>
//:传颜色参数
  <div id="app" v-colors:yellow>{{msg}}</div>
  <script src="../js/vue.js"></script>
  <script>
    Vue.directive('colors', {
      bind: function (el, binding) {
        el.style.color = '#fff',
          el.style.backgroundColor = binding.arg
        
      }
    })
    let app = new Vue({
      el: '#app',
      data: {

        msg: 'xmxixixi'

      },
    })
  </script>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值