溫馨提示×

溫馨提示×

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

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

vue.js中什么是事件處理器

發(fā)布時間:2021-07-09 11:25:42 來源:億速云 閱讀:135 作者:Leah 欄目:web開發(fā)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)vue.js中什么是事件處理器,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

監(jiān)聽事件

可以用v-on指令監(jiān)聽DOM事件來觸發(fā)一些javascript代碼。

demo:

<div v-on:click="++counter">點擊,增加1</div>
<span>{{counter}}</span>
 data:{

  counter:0

}

方法事件處理器

許多事件處理器的邏輯都很復雜,所以直接把javaScript代碼寫在v-on指令中是不可行的。因此v-on可以接收一個定義的方法來調(diào)用

<div v-on:click="counter()">點擊,增加1</div>
<span>{{counter}}</span>
data:{

  counter:0

},

method:{

  counter:function(){

  this.counter++;

  }

}

有時也需要在內(nèi)聯(lián)語句處理器中訪問原生DOM事件,可以用特殊變量$event把它傳入方法:

$event 原生事件對象

事件修飾符
在事件處理程序中調(diào)用event.preventDefault()或event.stopPropagagation()是非常常見的需求。盡管我們可以在methods中輕松實現(xiàn)這點,但更好的

方式是:methods只是純粹的數(shù)據(jù)邏輯,而不是去處理DOM事件的細節(jié)。

為了解決這個問題,Vue.js為v-on提供了事件修飾符,通過由(.)表示的指令后綴來調(diào)用修飾符。

.stop

.prevent

.capture

.self

.once 

<!-- 阻止單擊事件冒泡 -->
<a v-on:click.stop="doThis"></a>
<!-- 提交事件不再重載頁面 -->
<form v-on:submit.prevent="onSubmit"></form>
<!-- 修飾符可以串聯(lián) -->
<a v-on:click.stop.prevent="doThat"></a>
<!-- 只有修飾符 -->
<form v-on:submit.prevent></form>
<!-- 添加事件偵聽器時使用事件捕獲模式 -->
<div v-on:click.capture="doThis">...</div>
<!-- 只當事件在該元素本身(而不是子元素)觸發(fā)時觸發(fā)回調(diào) -->
<div v-on:click.self="doThat">...</div>

新增

<!--點擊事件將只會觸發(fā)一次-->
<a v-on:click.once="dothis"></a>

不像其他只能對原生的DOM事件起作用的修飾符,.once修飾符還能被用到自定義的組件事件上

按鍵修飾符
在監(jiān)聽鍵盤事件時,我們經(jīng)常需要監(jiān)聽常見的鍵值?! ue允許為v-on在監(jiān)聽事件時添加按鍵修飾符:

<!--只有在keyCode是13時調(diào)用vm.submit()-->
<input v-on:keyup.13="submit">

常見的按鍵還有別名:

<input v-on:keyup.enter="submit">
<input @keyup.enter="submit">

全部的按鍵別名:

.enter

.tab

.delete

.esc

.space

.up

.down

.left

.right

可以通過全局config.keyCodes對象 自定義案件修飾符別名

//可以使用v-on:keyup.f1
Vue.config.keyCodes.f1=112

按鍵修飾符  新增

可以用如下修飾符開啟鼠標或鍵盤事件監(jiān)聽,使在按鍵按下時發(fā)生反應(yīng)。

.ctrl

.alt

.shift

.meta 

注意:在不同系統(tǒng)的鍵盤上,meta對應(yīng)的鍵不一樣

為什么在HTML中監(jiān)聽事件
你可能注意到這種事件監(jiān)聽的方式違背了關(guān)注點分離的傳統(tǒng)理念。不必擔心,因為所有的Vue.js事件處理方法和表達式都嚴格綁定在當前視圖的ViewModel上,它不會導致任何維護上的困難。實際上,使用v-on有幾個好處:

1 掃一眼HTML模板便能輕松定位在JavaScript代碼里對應(yīng)的方法

2 因為你無須在JavaScript里手動綁定事件,你的viewModel代碼可以是非常純粹的邏輯,和DOM完全解耦,更易于測試。

3 當一個ViewModel被銷毀時,所有的事件處理器都會自動被刪除,你無須擔心如何自己清理它們。

上述就是小編為大家分享的vue.js中什么是事件處理器了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

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

AI