vue自定义指令的钩子函数,vue directive自定义指令

  vue自定义指令的钩子函数,vue directive自定义指令

  本文主要介绍了vue自定义指令指令及其常用的钩子函数,有很好的参考价值,希望对大家有所帮助。如有错误或不足之处,请不吝赐教。

  

目录

  自定义指令和常见钩子函数的描述钩子函数vue全局定义钩子函数中的本地定义(vue-cli)参数vue自定义指令选项指令选项定义指令

  

自定义指令directives及常用钩子函数

  

说明

  除了核心功能的默认内置指令(v-model和v-show),Vue还允许注册自定义指令。

  用在哪里:在某些情况下,你仍然需要对普通的DOM元素进行低级操作,然后你会使用自定义指令。

  

钩子函数

  Inserted:当绑定元素插入到父节点时调用(只存在父节点,但不一定插入到文档中)。Bind:仅在指令第一次绑定到元素时调用一次。可以在这里执行一次性初始化。Update:当组件的VNode更新时调用,但它可能发生在其子VNode更新之前。指令的值可能已更改,也可能未更改。但是您可以通过比较更新前后的值来忽略不必要的模板更新。ComponentUpdated:在指令所在组件的VNode及其子VNode都更新后调用。Unbind:仅在指令从元素解除绑定时调用一次。

  

vue 全局定义

  使用:span v指令名称welcome /span或v指令名称=传递的参数

  定义:Vue.directive(指令名,{指令钩子:函数function})

  div id=root

  span v-红色欢迎

  /div

  脚本类型=文本/javascript

  Vue.directive(red ,{ //定义

  插入:function(el){ //hook函数

  El . style . background= red ;

  }

  });

  var vm=new Vue({

  埃尔: #根

  数据:{

  },

  })

  /脚本

  

局部定义(vue-cli)

  使用:div v-指令名=传递参数/div //传递参数可以根据功能需求进行操作。

  定义:指令{指令名:{钩子函数:函数function}}

  模板

  你好

  div v-test=name/div

  /div

  /模板

  脚本

  导出默认值{

  data () {

  返回{

  姓名:用户名,

  }

  },

  指令:{ //自定义指令

  测试:{

  插入:function (el,binding) {//e是一个绑定元素,可以dom操作。

  Console.log(binding) //具有许多属性的对象(如下)

  },

  bind: function (el,binding,vnode) {

  el.innerHTML=binding.value

  }

  }

  },

  方法:{

  .

  }

  }

  /脚本

  

钩子函数里面的参数

  El:指令绑定的元素可以用来直接操作DOM。绑定:包含以下属性的对象:名称:指令名称,不包括v前缀。

  Value:指令的绑定值,例如在v-my-directive="1 1 "中,绑定值为2。

  OldValue:指令绑定的前一个值,仅在update和componentUpdated挂钩中可用。无论值是否改变都可用。

  表达式:字符串形式的指令表达式。例如,在v-my-directive="1 1 "中,表达式为" 1 1 "。

  Arg:传递给指令的参数,可选。例如,在v-my-directive:foo中,参数是“foo”。

  修改器:包含修改器的对象。例如:在v-my-directive.foo.bar中,修饰符对象是{foo: true,bar: true}。

  vnode:Vue编译生成的虚拟节点。OldVnode:前一个虚拟节点,它只在update和componentUpdated挂钩中可用。

  

vue自定义指令 directives选项

  

directives选项中定义 指令

  使用时添加v前缀

  全局注册

  app.directive(xxx ,{})

  支持动态指令参数

  v-xx:[abc]=xxx

  指令函数可以接受所有合法的JavaScript表达式。

  如果只需要在挂载和更新的时候触发该方法

  可以缩写为简单的回调函数。

  参数说明

  第一个参数是绑定元素。

  第二个参数是传递的对象。

  当应用于组件时,对应于参数的值。值的等号。arg绑定不同于非prop的属性,指令不会通过v-bind=$attrs 传入另一个元素。

  当应用于具有多个节点的组件时,该指令将被忽略并引发警告。

  以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: