VUE-directive指令,输入框自动获取焦点(2)

1、私有指令语法:

directives:{
    'focus(指令名称)':{
      bind(el) {},
      inserted(el,binding){},
      updated(el) {},
    },
}

 引用方式:

注意:在定义的时候,指令的名称前面,不需要加 v- 前缀,但是,在调用的时候,必须 在指令名称前 加上 v- 前缀来进行调用

 2、 钩子函数,只介绍常用

bind

只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。

和style有关的操作,最好在bind中去执行

inserted

被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。

和JS行为有关的操作,最好在 inserted 中去执行,否者 JS行为不生效

update 当VNode更新的时候,会执行 updated, 可能会触发多次

3、钩子函数参数,只介绍常用

  • el:指令所绑定的元素,可以用来直接操作 DOM 。
  • binding:一个对象,包含以下属性:
    • name:指令名,不包括 v- 前缀。
    • value:指令的绑定值,例如:v-my-directive="1 + 1" 中,绑定值为 2
    • oldValue:指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。
    • expression:字符串形式的指令表达式。例如 v-my-directive="1 + 1" 中,表达式为 "1 + 1"

4、实例

  • v-focus指令定义:
directives:{
    'focus':{
      bind(el) {
      },
      inserted(el){
        el.focus()
      },
      updated(el) {
      },
},
  • v-focus指令引用:
  • 效果

VUE-directive指令,输入框自动获取焦点(2)_第1张图片

源码:







 

 

你可能感兴趣的:(VUE)