美文网首页
指令Directive

指令Directive

作者: Yandhi233 | 来源:发表于2021-12-10 22:59 被阅读0次

类型:Object;包含 Vue 实例可用指令的哈希表。
指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。

示例:

<p v-if="seen">现在你看到我了</p>
//  用于响应式地更新 HTML 
<a v-bind:href="url">...</a>
<!-- 缩写 -->
<a :href="url">...</a>
<a v-on:click="doSomething">...</a>
<!-- 缩写 -->
<a @click="doSomething">...</a>
//  动态参数
<a @[eventName]="doSomething"> ... </a>

自定义指令

自制一个指令 v-y 点击元素就打印出 y

// 注册一个全局自定义指令 `v-y`
Vue.directive('y', {
  // 当被绑定的元素插入到 DOM 中时……
  inserted: function () {
    console.log('y')
  }
})

如果想注册局部指令,组件中也接受一个 directives 的选项

directives: {
  y: {
    // 指令的定义
    inserted: function () {
      console.log('y')
    }
  }
}

然后你可以在模板中任何元素上使用新的 v-y property,如下:

<h1 v-y> hi </h1>
·钩子函数
  • bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。

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

  • update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变,也可能没有。

  • componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用。

  • unbind:只调用一次,指令与元素解绑时调用。

钩子函数的参数 (即 elbindingvnodeoldVnode)。

相关文章

网友评论

      本文标题:指令Directive

      本文链接:https://www.haomeiwen.com/subject/spuhfrtx.html