Vue2.0学习笔记Vue.directive 自定义指令(9)

2018-02-20  本文已影响0人  小囧兔

一、什么是全局API

全局API并不在构造器里,而是先声明全局变量或者直接在Vue上定义一些新功能,Vue内置了一些全局API,比如我们今天要学习的指令Vue.directive。说的简单些就是,在构造器外部用Vue提供给我们的API函数来定义新的功能。

二、Vue.directive自定义指令

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

三、自定义指令中传递的三个参数

Vue.directive('focus',function(el,binding,vnode){
        el.style='color:'+binding.value;
});

四、自定义指令的生命周期

一个指令定义对象可以提供如下几个钩子函数 (均为可选):

五、钩子函数的参数

指令钩子函数会被传入以下参数:

除了 el 之外,其它参数都应该是只读的,切勿进行修改。如果需要在钩子之间共享数据,建议通过元素的 dataset来进行。

<div id="hook-arguments-example" v-demo:foo.a.b="message"></div>
Vue.directive('demo', {
  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 keys: ' + Object.keys(vnode).join(', ')
  }
})

new Vue({
  el: '#hook-arguments-example',
  data: {
    message: 'hello!'
  }
})
image.png

今晚实在太累了,关于自定义指令,我觉得vue的官网已经写得很好了,为了加深印象自己多写一遍。加油,希望可以早点写项目实战

上一篇 下一篇

猜你喜欢

热点阅读