v-on監(jiān)聽(tīng)dom事件
v-on可以接收一個(gè)需要調(diào)用的方法名稱:
監(jiān)聽(tīng)鍵盤(pán)抬起事件,go方法在鍵盤(pán)抬起時(shí)觸發(fā);
<input @keyup="go" v-focus='true'>
go:function(event){
this.$router.push({name:'Ta'})
},
在內(nèi)聯(lián)語(yǔ)句處理器中,需要訪問(wèn)原始dom事件,需要通過(guò)$event傳入?yún)?shù);
<h1 @keydown.ctrl='clickevent($event)'>
clickevent:function(event){
console.log(event)
}
//KeyboardEvent {isTrusted: true, key: "Control", code: "ControlLeft", location: 1, ctrlKey: true, …}
在阻止默認(rèn)事件時(shí),雖然event.preventDefault() 或 event.stopPropagation()比較簡(jiǎn)單,但是更好的方法:是在方法中只有純粹的數(shù)據(jù)邏輯,不再處理dom事件。所以新增了事件修飾符;
<a v-on:click.stop="doThis"></a>
.stop 阻止單擊事件繼續(xù)傳播
<form v-on:submit.prevent="onSubmit"></form>
.prevent 提交事件不再加載頁(yè)面
修飾符可以串聯(lián),串聯(lián)修飾符有順序;可以只有修飾符
.capture 事件捕獲模式;現(xiàn)在本層觸發(fā)事件,再向里面觸發(fā)
<div v-on:click.capture="doThis">...</div>
.self 只有當(dāng)前元素觸發(fā),里面的元素不再觸發(fā);
<div v-on:click.self="doThat">...</div>
.passive 等待onScroll滾動(dòng)事件加載完成后才會(huì)觸發(fā)滾動(dòng)事件。默認(rèn)滾動(dòng)事件是立即出發(fā)的;
<div v-on:scroll.passive="onScroll">...</div>
_.passive 修飾符尤其能夠提升移動(dòng)端的性能
該修飾符告訴瀏覽器不會(huì)阻止事件的默認(rèn)行為;不可以和prevent一起用
鍵盤(pán)修飾符
鍵盤(pán)修飾符主要是為了檢查詳細(xì)的按鍵;
.enter
.tab
.delete (捕獲“刪除”和“退格”鍵)
.esc
.space
.up
.down
.left
.right
還可以自定義 按鍵修飾符 :Vue.config.keyCodes.g = 111;
<input @keyup.alt.67="clear">
//同時(shí)按下alt和c鍵