溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue自定義指令directive有什么用

發布時間:2021-07-15 14:07:09 來源:億速云 閱讀:198 作者:小新 欄目:web開發

這篇文章主要介紹了vue自定義指令directive有什么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體內容如下所示:

vue自定義指令directive有什么用 

官網截圖實例

vue除了一些核心的內部定義的指令(v-model,v-if,v-for,v-show)外,vue也允許用戶注冊自己的一些功能性的指令,有時候你實在是要對Dom操作,這個時候是自定義指令最合適的了。

來直接看例子:當頁面加載時使得元素獲得焦點(autofocus 在移動版 Safari 是不支持的),就是當頁面加載好了,不做任何的操作使得表單自動獲得焦點,光標自動在某個表單上代碼如下:

Vue.directive('zsqfocus', { // 注冊一個全局自定義指令 `v-zsqfocus`,在main.js文件里
 inserted: function (el) { // 當被綁定的元素插入到 DOM 中時自動調用
 el.focus() // 聚焦元素
 }
})

如果想注冊局部指令,組件中也接受一個 directives 的選項:

<script>
export default {
 directives: { // 指令的定義
  zsqfocus: {
   inserted: function (el) { // 獲得焦點
    el.focus()
   }
  }
  }
 }
</script>

然后你可以在模板中任何組件上使用新的 v-zsqfocus 屬性,如下:

<template>
 <input v-zsqfocus /> //調用 
</template>

舉了一個跟官網一樣的例子,directives跟methods,mounted等是一個級別的可以同時使用。

PS:下面看下vue之自定義指令directive的實例代碼,具體代碼如下所示:

<template>
 <div>
  <input v-model="dir1" v-my-directive1="dir1"/>     <input v-model="dir2" v-my-directive2="dir2"/>
 </div>
</template>
<script>
 export default {
  data(){
   return {         dir1:'',         dir2:''
       }
  },
  directives:{       //直接綁定函數,作用等同于update,不做準備工作和掃尾工作
   myDirective1(val){
    console.log(val)
   },       myDirective2:{          bind(){             //第一次綁定到元素的準備工作          },          update(val,old){            //在綁定到元素后立即以初始值第一次調用,然后每次example2變化都會調用update            console.log(val)          },            unbind(){            //銷毀前的清理工作          }       }
  }
 }
</script>

感謝你能夠認真閱讀完這篇文章,希望小編分享的“vue自定義指令directive有什么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女