美文网首页
VUE DAY3 自定义指令

VUE DAY3 自定义指令

作者: 为什么要简称 | 来源:发表于2019-12-02 18:54 被阅读0次

vue除了提供一些核心指令,还允许使用者自定义属性。
一般使用vue时不建议直接对DOM进行操作,但有的时候仍然需要对普通DOM元素进行底层操作,这时候就要用到自定义属性了。
(在需要操作DOM的时候,考虑是否需要使用指令来实现)

Vue.directive('指令名称', {
  //配置参数

  //只会调用一次,当指令绑定到当前元素上时使用
  bind([el, binding]){}, 

  //当元素被插入到父节点的时候使用(渲染时)
  inserted([el, binding]){},

  //当指令对应的数据发生改变时
  update([el, binding]),

  //在所有DOM都更新之后
  componentUpdated([el, binding]){},

  //指令与元素解绑的时候
  unbind([el, binding]){}
}

自定义指令中的bind, inserted, update, unbind都是钩子函数,只写需要使用的就可以了。
钩子函数的参数
el: 当前元素
binding:一个对象,包含以下属性:
     name(binding.name):指令名,不包括 v- 前缀。
     value(binding.value):指令的绑定值,例如:v-my-directive="1 + 1" 中,绑定值为 2。
     oldValue:指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。
     expression:字符串形式的指令表达式。例如 v-my-directive="1 + 1" 中,表达式为 "1 + 1"。
     arg(binding.arg):传给指令的参数,可选。例如 v-my-directive:foo 中,参数为 "foo"。
     modifiers(binding.modifiers):一个包含修饰符的对象。例如:v-my-directive.foo.bar 中,修饰符对象为 { foo: true, bar: true }。

举个栗子:

//name: myon
//arg: click
//expression: clickFn
//value: f
<button v-myon:click="clickFn">button</button>

相关文章

  • season2-全局API

    第1节:Vue.directive 自定义指令 Vue.directive自定义指令 自定义的指令:changec...

  • Vue div节点滚动事件-加载更多

    使用Vue.directive注册全局指令 绑定事件 对于Vue自定义指令不明白的同学请移步: Vue自定义指令 ...

  • VUE-2:自定义指令、事件

    directive自定义指令 我们还可以通过`Vue`提供的directive方法来自定义指令 注册指令 `vue...

  • vue入门6---vue基本指令、自定义指令、插件

    一、vue常用指令概览 二、vue自定义指令 注册全局指令Vue.directive('my-directive'...

  • vue自定义指令初探

    vue自定义指令初探 一、什么是自定义指令 自定义指令是用来操作DOM的。尽管Vue推崇数据驱动视图的理念,但并非...

  • vue 有自定义指令

    vue 的自定义指令,分为全局自定义指令和局部自定义指令,局部自定义指令等价于局部组件。 自定义指令可以对DOM进...

  • Vue指令钩子函数

    Vue指令上篇文章有讲过了,现在分析Vue指令钩子函数。 自定义指令 全局定义:Vue.directive( ' ...

  • vue自定义指令

    除了内置的指令外,Vue 也允许注册自定义指令。 vue用Vue.directive(id,definition)...

  • vue知识集锦(三)

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

  • Vue基础(五)--自定义指令与过渡

    1.自定义指令 分类:全局指令、局部指令 1.1 自定义全局指令 使用全局方法 Vue.directive(指令I...

网友评论

      本文标题:VUE DAY3 自定义指令

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