天天看点

事件修饰符、按键修饰符

事件修饰符

.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 } 模式添加侦听器      

这里举2个典型例子简单说一下

.stop

<div @click="doThis('wade',$event)">
     <button @click.stop="sayHi()">点击</button>
</div>      

上面代码,父元素跟子元素各自绑定相应的事件触发不同的方法,子元素采用事件修饰符阻止了父元素事件的处罚

<button @click.stop="sayHi()">点击</button>

// 等同于
methods: {
    sayHi(e) {
        e.stopPropagation();
    }
}      
<a href="https://www.baidu.com/" @click.prevent="toSay">百度</a>

// 相当于
methods: {
    toSay(e) {
        e.preventDefault();
    }
}      
<!-- 停止冒泡 -->
<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>      
上一篇: 快捷键
下一篇: 快捷键