Vue系列教程(二十二)自定義全局指令讓文本獲取焦點

實現文本框自動獲取焦點,在原生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系列教程(二十一)自定義按鍵修飾符

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章