最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue中的directive指令快速使用

 更新時間:2022年10月18日 09:05:57   作者:小鐵匠95  
這篇文章主要介紹了Vue中的directive指令快速使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

一、用法:注冊或獲取全局指令

Vue.directive(id,[definition])

除了核心功能默認內置的指令 (v-model 和 v-show),Vue 也允許注冊自定義指令。注意,在 Vue2.0 中,代碼復用和抽象的主要形式是組件。

然而,有的情況下,你仍然需要對普通 DOM 元素進行底層操作,這時候就會用到自定義指令。

二、鉤子函數(shù)

一個指令定義對象可以提供如下幾個鉤子函數(shù)(均為可選):

  • bind:只調用一次,指令第一次綁定到元素時調用。在這里可以進行一次性的初始化設置。
  • inserted:被綁定元素插入父節(jié)點時調用(僅保證父節(jié)點存在,但不一定已被 插入文檔中)。
  • update:所在組件的vNode更新時調用,但是可能發(fā)生在其子vNode更新之前。指令的值可能發(fā)生了改變,也可能沒有。但是你可以通過比較更新前后的值來忽略不必要的模板更新。
  • componentUpdated:指令所在組件的 VNode 及其子 VNode 全部更新后調用。
  • unbind:只調用一次,指令與元素解綁時調用。
// 注冊
Vue.directive('my-directive',{
    bind:  function () {},         
    inserted: function () {},
    update: function () {},
    componentUpdated: function () {},
    unbind: function() {}
})

鉤子函數(shù)參數(shù):

image.png

使用property的自定義鉤子樣例:

<template>
  <div class="content">
    <div id="hook-arguments-example" v-demo:foo.a.b="message"></div>
  </div>
</template>  
<script>
export default {
  name: 'Content',
  data(){
    return{
      message: 'hello!'
    }
  },
  directives: {
    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(', ')
      }
    }
  }
}
</script>

頁面顯示:

image.png

三、快速使用-----獲取input框的焦點

1.全局指令

在main.js總注冊:

Vue.directive('focus',{
  // 當綁定元素插入到 DOM 中
  inserted: function(el) {
    el.focus();
  }
})
new Vue({
  router,
  store,
  render: h => h(App),
}).$mount('#app')

頁面引入:

<template>
  <div class="content">
    <input type="text" v-focus/>
  </div>
</template>  

2.局部指令

<template>
  <div class="content">
    <input type="text" v-focus/>
  </div>
</template>  
<script>
export default {
  name: 'Content',
  directives: {
    focus: {
      // 指令的定義
      inserted: function(el) {
        el.focus();
      }
    }
  }
}
</script>

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

广东省| 延吉市| 林州市| 盐池县| 民县| 攀枝花市| 厦门市| 正蓝旗| 张家口市| 都昌县| 东方市| 金阳县| 温宿县| 柞水县| 鸡泽县| 正镶白旗| 灵丘县| 原平市| 涿州市| 前郭尔| 陕西省| 普格县| 兴化市| 张北县| 桂阳县| 漳州市| 肇州县| 大荔县| 邵阳县| 呼伦贝尔市| 天全县| 梨树县| 江达县| 汝南县| 甘德县| 渑池县| 维西| 抚松县| 桂林市| 务川| 商都县|