美文网首页
Vue.js自定义指令

Vue.js自定义指令

作者: 爱学习的代代 | 来源:发表于2020-06-21 17:53 被阅读0次
一、指定的定义

1、指令是指带有v- 前缀的特殊实行,指令用于在表达式的值发生变化时,将某些行为应用到DOM上。

    <p v-if="seen">现在你能看到我了</p>
...

data: {
      seen: true
}


二、除了Vue框架给出的指令之外,我们还可以自定义指令。
使用 Vue.directive('指令名', {
  省略的钩子函数等。
})

完整的代码样例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue.js自定义指令</title>

    <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>

</head>
<body>
<div id="app" v-peter:hello.a.b="message"></div>

<script>

    Vue.directive('peter', {
        bind: function(el, binding, vnode) {
          var s = JSON.stringify
          el.innerHTML = 
          'name: ' + s(binding.name) +  '<br>' +
          'value: ' + s(binding.value) + '<br>' + 
          'expression: ' + s(binding.expression) + '<br>' +
          'argument: ' + s(binding.arg) + '<br>' + 
          'modifiers: ' + s(binding.modifiers) + '<br>' +
          'vnode: ' + Object.keys(vnode).join(', ')
           
        }
    }),

    new Vue({
        el: '#app',
        data: {
            message: '代代学vue'
        }
    })

</script>

</body>
</html>

说明:

  1. peter为声明的指令名
  2. hello 为peter指令的参数,跟随指令之后,以:分割。
  3. a b 为修饰符: 修饰符是以半角句号 . 指明的特殊后缀,用于指出一个指令应该以特殊方式绑定。
  4. message 为表达式
  • binding.name 是指令的名 peter
  • binding.value 是表达式的值 代代学vue
  • binding.expression 是表达式 message
  • binding.argument 是指令的参数 hello
  • binding.modifiers: 是包含指令的修饰符的对象。为{ "a": true, "b": true}

相关文章

网友评论

      本文标题:Vue.js自定义指令

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