實現文本框自動獲取焦點,在原生JS中的做法如下:
html
<input type="text" class="form-control" v-model="keywords" id="search">
js
document.getElementById('search').focus()
但是vue不提倡操作DOM,vue中的做法是使用自定義指令:
注意:vue中自定義指令都是以v-
開頭
- 使用
Vue.directiv()
定義全局指令 - 參數1:指令名稱
- 在定義的時候,指令名稱前面,不需要加
v-
前綴,在調用時,必須在指令名稱前加上v-
前綴來進行調用 - 參數2:是一個對象,這個對象身上,有一些指令相關的函數,這些函數可以在特定的階段執行相關的操作
自定義指令的定義:
Vue.directiv('focus', {
// 當綁定元素插入到 DOM 中
inserted: function (el) {
// 聚焦元素
el.focus()
}
})
自定義指令的使用:
<input type="text" class="form-control" v-model="keywords" v-focus>
其他的函數:
- bind:每當指令綁定到元素上的時候,會執行這個bind函數,只執行一次。第一個參數,永遠是el,表示被綁定了指令的那個元素,這個el,是一個原生的js對象。
- inserted:元素插入到DOM中的時候,會執行,只執行一次。
- updated:當VNode更新的時候,會執行updated,可能會觸發多次。
推薦閱讀:
Vue系列教程(一)基礎介紹
Vue系列教程(二)v-cloak、v-text、v-html的基本使用
Vue系列教程(三)v-bind指令
Vue系列教程(四)v-on指令定義事件
Vue系列教程(五)跑馬燈效果案例
Vue系列教程(六)事件修飾符
Vue系列教程(七)v-model和雙向數據綁定
Vue系列教程(八)v-model實現計算器案例
Vue系列教程(九)屬性綁定爲元素設置class類樣式
Vue系列教程(十)屬性綁定爲元素綁定style行內樣式
Vue系列教程(十一)v-for指令的四種使用方式
Vue系列教程(十二)v-for中key的使用注意事項
Vue系列教程(十三)v-if和v-show的使用和特點
Vue系列教程(十四)品牌管理案例-品牌列表的添加功能
Vue系列教程(十五)品牌管理案例-根據Id完成品牌的刪除
Vue系列教程(十六)品牌管理案例-根據關鍵字實現數組的過濾
Vue系列教程(十七)全局過濾器的基本使用
Vue系列教程(十八)品牌管理案例-定義格式化時間全局過濾器
Vue系列教程(十九)私有過濾器的基本使用
Vue系列教程(二十)字符串的padStart方法使用
Vue系列教程(二十一)自定義按鍵修飾符