v-on监听dom事件
v-on可以接收一个需要调用的方法名称:
监听键盘抬起事件,go方法在键盘抬起时触发;
<input @keyup="go" v-focus='true'>
go:function(event){
this.$router.push({name:'Ta'})
},
在内联语句处理器中,需要访问原始dom事件,需要通过$event传入参数;
<h1 @keydown.ctrl='clickevent($event)'>
clickevent:function(event){
console.log(event)
}
//KeyboardEvent {isTrusted: true, key: "Control", code: "ControlLeft", location: 1, ctrlKey: true, …}
在阻止默认事件时,虽然event.preventDefault() 或 event.stopPropagation()比较简单,但是更好的方法:是在方法中只有纯粹的数据逻辑,不再处理dom事件。所以新增了事件修饰符;
<a v-on:click.stop="doThis"></a>
.stop 阻止单击事件继续传播
<form v-on:submit.prevent="onSubmit"></form>
.prevent 提交事件不再加载页面
修饰符可以串联,串联修饰符有顺序;可以只有修饰符
.capture 事件捕获模式;现在本层触发事件,再向里面触发
<div v-on:click.capture="doThis">...</div>
.self 只有当前元素触发,里面的元素不再触发;
<div v-on:click.self="doThat">...</div>
.passive 等待onScroll滚动事件加载完成后才会触发滚动事件。默认滚动事件是立即出发的;
<div v-on:scroll.passive="onScroll">...</div>
_.passive 修饰符尤其能够提升移动端的性能
该修饰符告诉浏览器不会阻止事件的默认行为;不可以和prevent一起用
键盘修饰符
键盘修饰符主要是为了检查详细的按键;
.enter
.tab
.delete (捕获“删除”和“退格”键)
.esc
.space
.up
.down
.left
.right
还可以自定义 按键修饰符 :Vue.config.keyCodes.g = 111;
<input @keyup.alt.67="clear">
//同时按下alt和c键