事件处理:v-on
格式:v-on:事件名=“函数名” 或者 v-on:事件名=“函数名(参数)”
所写的时候 @事件名=“函数名” 或者 @事件名=“函数名(参数)”
如果函数不穿参数的时候,默认传event,代表原生的DOM事件,当调用的函数有多个参数传入的时候,需要使用原生DOM事件,要通过$event作为实参来传;
用于监听DOM事件
案例:
<body>
<div id="app">
<button v-on:click="say">say:{{msg}}</button>
<button @click="say2('hello',$event)">按钮</button>
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script>
new Vue({
el: "#app",
data: {
msg: "hello"
},
methods: {
say() {
console.log(this.msg);
},
say2(txt, event) {
console.log(txt, event);
}
}
})
</script>
</body>
事件修饰符:
.stop 阻止单击事件继续传播event.stopPropagation()
.prevent 阻止事件的默认行为 event.preventDefault()
.once 点击事件只会触发一次
.capture 添加事件监听器时使用事件捕获模式即内部元素触发的事件先在此处理,然后才交由内部元素进行处理
.self 只当在 event.target 是当前元素自身时触发处理函数即事件不是从内部元素触发的
.passive 滚动事件的默认行为 (即滚动行为) 将会立即触发,不会等待 onScroll
完成,这其中包含 event.preventDefault()
的情况,这个 .passive 修饰符尤其能够提升移动端的性能。
不要把 .passive 和 .prevent 一起使用,因为 .prevent 将会被忽略
按键修饰符
.enter
.tab
.delete (捕获“删除”和“退格”键)
.esc
.space
.up
.down
.left
.right