監聽事件
可以用v-on指令監聽DOM事件來觸發一些javascript代碼。
demo:
<div v-on:click="++counter">點擊,增加1</div><span>{{counter}}</span> data:{ counter:0}方法事件處理器
許多事件處理器的邏輯都很復雜,所以直接把javaScript代碼寫在v-on指令中是不可行的。因此v-on可以接收一個定義的方法來調用
<div v-on:click="counter()">點擊,增加1</div><span>{{counter}}</span>data:{ counter:0},method:{ counter:function(){ this.counter++; }}有時也需要在內聯語句處理器中訪問原生DOM事件,可以用特殊變量$event把它傳入方法:
$event 原生事件對象
事件修飾符
在事件處理程序中調用event.preventDefault()或event.stopPropagagation()是非常常見的需求。盡管我們可以在methods中輕松實現這點,但更好的
方式是:methods只是純粹的數據邏輯,而不是去處理DOM事件的細節。
為了解決這個問題,Vue.js為v-on提供了事件修飾符,通過由(.)表示的指令后綴來調用修飾符。
.stop
.prevent
.capture
.self
.once
<!-- 阻止單擊事件冒泡 --><a v-on:click.stop="doThis"></a><!-- 提交事件不再重載頁面 --><form v-on:submit.prevent="onSubmit"></form><!-- 修飾符可以串聯 --><a v-on:click.stop.prevent="doThat"></a><!-- 只有修飾符 --><form v-on:submit.prevent></form><!-- 添加事件偵聽器時使用事件捕獲模式 --><div v-on:click.capture="doThis">...</div><!-- 只當事件在該元素本身(而不是子元素)觸發時觸發回調 --><div v-on:click.self="doThat">...</div>
新增
<!--點擊事件將只會觸發一次--><a v-on:click.once="dothis"></a>
不像其他只能對原生的DOM事件起作用的修飾符,.once修飾符還能被用到自定義的組件事件上
按鍵修飾符
在監聽鍵盤事件時,我們經常需要監聽常見的鍵值。 Vue允許為v-on在監聽事件時添加按鍵修飾符:
<!--只有在keyCode是13時調用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.f1Vue.config.keyCodes.f1=112
新聞熱點
疑難解答
圖片精選