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實例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
前端vue如何監(jiān)聽對象或者數組某個屬性的變化詳解
這篇文章主要給大家介紹了關于前端vue如何監(jiān)聽對象或者數組某個屬性的變化的相關資料,在Vue中你可以使用watch或者computed來監(jiān)聽對象或數組某個屬性的變化,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-03-03
使用vuex較為優(yōu)雅的實現一個購物車功能的示例代碼
這篇文章主要介紹了使用vuex較為優(yōu)雅的實現一個購物車功能的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12

