自定義指令,經(jīng)常用于組件的復(fù)用和抽象,還有的情況是對普通 DOM 元素進行底層操作。例如:
聚焦輸入框
常用鉤子函數(shù):
- 初始化的時候調(diào)用一次
bind(el指令所綁定的元素, 屬性對象binding, Vue編譯生成的虛擬節(jié)點vNode)- 當(dāng)被綁定的元素插入到 DOM 中時調(diào)用一次
inserted(el, binding, vNode)- 所在組件的 VNode 更新時調(diào)用
update(el, binding, vNode)
#實現(xiàn)頁面初始化時,聚焦輸入框
<template>
<div id="app">
<!-- 使用自定義組件v-focus -->
<input type="text" v-focus />
</div>
</template>
<script>
export default {
name: "App",
// 注冊自定義指令
directives: {
// 聲明自定義指令v-focus
focus: {
// v-foucs指令的鉤子函數(shù)
inserted: function (el, binding){
el.focus();
},
},
},
};
</script>