縮寫:@
html
預期:Function | Inline Statement | Object
code
參數:event
component
修飾符:orm
.stop
- 調用 event.stopPropagation()
。.prevent
- 調用 event.preventDefault()
。.capture
- 添加事件偵聽器時使用 capture 模式。.self
- 只當事件是從偵聽器綁定的元素自己觸發時才觸發回調。.{keyCode | keyAlias}
- 只當事件是從特定鍵觸發時才觸發回調。.native
- 監聽組件根元素的原生事件。.once
- 只觸發一次回調。.left
- (2.2.0) 只當點擊鼠標左鍵時觸發。.right
- (2.2.0) 只當點擊鼠標右鍵時觸發。.middle
- (2.2.0) 只當點擊鼠標中鍵時觸發。.passive
- (2.3.0) 以 { passive: true }
模式添加偵聽器用法:htm
綁定事件監聽器。事件類型由參數指定。表達式能夠是一個方法的名字或一個內聯語句,若是沒有修飾符也能夠省略。對象
用在普通元素上時,只能監聽原生 DOM 事件。用在自定義元素組件上時,也能夠監聽子組件觸發的自定義事件。事件
在監聽原生 DOM 事件時,方法以事件爲惟一的參數。若是使用內聯語句,語句能夠訪問一個 $event
屬性:v-on:click="handle('ok', $event)"
。get
從 2.4.0
開始,v-on
一樣支持不帶參數綁定一個事件/監聽器鍵值對的對象。注意當使用對象語法時,是不支持任何修飾器的。input
示例:it
<!-- 方法處理器 --> <button v-on:click="doThis"></button> <!-- 內聯語句 --> <button v-on:click="doThat('hello', $event)"></button> <!-- 縮寫 --> <button @click="doThis"></button> <!-- 中止冒泡 --> <button @click.stop="doThis"></button> <!-- 阻止默認行爲 --> <button @click.prevent="doThis"></button> <!-- 阻止默認行爲,沒有表達式 --> <form @submit.prevent></form> <!-- 串聯修飾符 --> <button @click.stop.prevent="doThis"></button> <!-- 鍵修飾符,鍵別名 --> <input @keyup.enter="onEnter"> <!-- 鍵修飾符,鍵代碼 --> <input @keyup.13="onEnter"> <!-- 點擊回調只會觸發一次 --> <button v-on:click.once="doThis"></button> <!-- 對象語法 (2.4.0+) --> <button v-on="{ mousedown: doThis, mouseup: doThat }"></button>
在子組件上監聽自定義事件 (當子組件觸發「my-event」時將調用事件處理器):
<my-component @my-event="handleThis"></my-component> <!-- 內聯語句 --> <my-component @my-event="handleThis(123, $event)"></my-component> <!-- 組件中的原生事件 --> <my-component @click.native="onClick"></my-component>