博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue.js(进阶)自定义指令
阅读量:4085 次
发布时间:2019-05-25

本文共 1076 字,大约阅读时间需要 3 分钟。

0x00

同样 Vue 允许我们自定义指令,以再必要的情况下实现对原生 DOM 的操作。

Vue 提供了 deirevtice 注册全局指令,directives 注册局部指令。

Vue.directive('focus',{ // 注册一个全局的指令 focus inserted: function (el) {// inserted: 钩子函数,被绑定元素插入到父节点时调用// el:钩子函数的参数,代表指令所绑定的元素,可以直接用来操作 DOM el.focus() }})new Vue({ el: '#demo', directives: { // 局部指令 warn: {// 注册一个局部指令 warn inserted: function (el) {// el.style.border = '2px solid red' } } }})

0x01 钩子函数

除了 inserted 函数外, Vue 还提供了其它几个钩子函数:

  • bind: 只调用一次,当指令第一次被绑定到元素时调用。
  • inserte: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。
  • update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新。
  • componentUpdated: 被绑定元素所在模板完成一次更新周期时调用。
  • unbind: 只调用一次,指令与元素解绑时调用。

以上所有钩子函数都接受四个钩子函数的参数,elbindingvnod,oldVnode(仅在 update和 componentUpdated 钩子中可用)。

  • el: 指令所绑定的元素。
  • binding: 一个对象,包含如下属性:
    • name: 指令名,不包括 v- 前缀。
    • value: 指令绑定的属性值。
    • oldValue: 指令绑定的前一个值,仅在 update 和 componentUpdate 中可用。
    • arg: 传给指令的参数。v-my-direvtive:foo ,arg=foo
    • expression: 绑定值的字符串形式
    • modifiers: 一个包含修饰符对象
  • vnode: Vue 编译生产的虚拟节点。
  • oldVnode: 上一个虚拟节点。

转载地址:http://zqhni.baihongyu.com/

你可能感兴趣的文章
phpquery抓取网站内容简单介绍
查看>>
找工作准备的方向(4月22日写的)
查看>>
关于fwrite写入文件后打开查看是乱码的问题
查看>>
用结构体指针前必须要用malloc,不然会出现段错误
查看>>
Linux系统中的美
查看>>
一些实战项目(linux应用层编程,多线程编程,网络编程)
查看>>
我觉得专注于去学东西就好了,与世无争。
查看>>
原来k8s docker是用go语言写的,和现在所讲的go是一个东西!
查看>>
STM32CubeMX 真的不要太好用
查看>>
STM32CubeMX介绍、下载与安装
查看>>
不要买铝合金机架的无人机,不耐摔,易变形弯曲。
查看>>
ACfly也是基于FreeRTOS的
查看>>
F330装GPS的位置
查看>>
pixhawk也可以用Airsim仿真
查看>>
《无人机电机与电调技术》可以看看
查看>>
我发现七月在线的GAAS课程基本都讲到了
查看>>
电机堵转
查看>>
carzepony也在想往FreeRTOS上迁移
查看>>
可以买个好点的电烙铁
查看>>
ACfly调参记录(包括ACfly-F330和ACfly-T265)
查看>>