中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Vue中如何使用自定義指令

發布時間:2021-07-21 14:21:53 來源:億速云 閱讀:238 作者:Leah 欄目:web開發

今天就跟大家聊聊有關Vue中如何使用自定義指令,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

1.自定義指令的語法

Vue自定義指令語法如下:

Vue.directive(id, definition)

傳入的兩個參數,id是指指令ID,definition是指定義對象。其中,定義對象可以提供一些鉤子函數

2.鉤子函數

定義對象的鉤子函數如下:

Vue中如何使用自定義指令

鉤子函數的參數

el: 指令所綁定的元素,可以用來直接操作 DOM 。

binding: 一個對象,包含以下屬性:
*name: 指令名,不包括 v- 前綴。
*value: 指令的綁定值, 例如: v-my-directive=”1 + 1”,value 的值是 2。
*oldValue: 指令綁定的前一個值,僅在 update 和 componentUpdated 鉤子中可用。無論值是否改變都可用。
*expression: 綁定值的字符串形式。 例如 v-my-directive=”1 + 1” , expression 的值是 “1 + 1”。
*arg: 傳給指令的參數。例如 v-my-directive:foo, arg 的值是 “foo”。
*modifiers: 一個包含修飾符的對象。 例如: v-my-directive.foo.bar, 修飾符對象 modifiers 的值是 { foo: true, bar: true }。

vnode: Vue 編譯生成的虛擬節點。

oldVnode: 上一個虛擬節點,僅在 update 和 componentUpdated 鉤子中可用。

3.例子

Vue自定義指令常見使用例子如下:

Vue.directive('my-directive', {
 bind: function(){
 //做綁定的準備工作
 //比如添加事件監聽器,或是其他只需要執行一次的復雜操作
 },
 inserted: function(){
 //...
 },
 update: function(){
 //根據獲得的新值執行對應的更新
 //對于初始值也會調用一次
 },
 componentUpdated: function(){
 //...
 },
 unbind: function(){
 //做清理操作
 //比如移除bind時綁定的事件監聽器
 }

當指令的定義對象中只使用update時,只需直接傳入函數即可,如下:

Vue.directive('my-directive', function(){
 //...
})

4.應用

我們往往自定義指令都是定義到全局,方式如下:

第一步:建立一個全局的命令文件例如:directive/directives.js.

第二步:利用Vue.directive()建立一個全局命令,并將它暴露出來,例如一個focus 讓表單自動聚焦.

directives.js

import Vue from 'vue';
Vue.directive('focus',{
 //當綁定元素插入到DOM中
 inserted: function(el){
  el.focus(); //元素聚焦
  el.setAttribute('placeholder','自定義內容');
 }
})
Vue.directive('***',{
 inserted: function(el){
  //....
 }
})

export {Vue}

第三步:在main.js(入口JS文件)中將它引入,可以省略文件后綴.

main.js

import directive from './components/global/directives';

這樣任何一個Vue文件只要這樣v-focus(命令名),就可以很方便的用到了

<el-input v-model="input" placeholder="" v-focus></el-input>

如果指令需要傳值或者多個值

<body id="example">
 <div id="demo" v-demo="{color : 'white',text : 'hello!'}"></div>
</body>
<script>
 Vue.directive('demo',function(value){
  console.info(value.color); //white
  console.info(value.text) // hello!
 })
 var demo = new Vue({
  el : '#demo'
 })
</script>
----------

看完上述內容,你們對Vue中如何使用自定義指令有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

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

vue
AI

和龙市| 十堰市| 凌源市| 张家界市| 新郑市| 柘城县| 多伦县| 玉屏| 马山县| 湘西| 太原市| 商城县| 游戏| 讷河市| 祁门县| 襄樊市| 恩平市| 遂平县| 进贤县| 昌邑市| 湘阴县| 德兴市| 内乡县| 宁国市| 海宁市| 永春县| 金平| 铜梁县| 上饶市| 平罗县| 彰化市| 平塘县| 衡南县| 固阳县| 安仁县| 卢龙县| 彭州市| 富阳市| 五峰| 平原县| 册亨县|