04_事件处理
事件监听
v-on指令可以监听DOM事件,并在触发时执行JavaScript代码
<body>
<div id="app">
<h1>count: {{ count }}</h1>
<button v-on:click="count++">count++</button>
</div>
<script>
const vm = new Vue({
el: '#app',
data() {
return {
count: 0,
};
},
});
</script>
</body>
v-on简写
<button @:click="count++">count++</button>
事件处理方法
事件处理方法定义在methods里面,当事件被触发执行相应函数
<body>
<div id="app">
<h1>count: {{ count }}</h1>
<button v-on:click="click1">click1</button>
<button v-on:click="click2(100, $event)">click2</button>
</div>
<script>
const vm = new Vue({
el: '#app',
data() {
return {
count: 0,
};
},
methods: {
click1: function () {
alert('click1');
console.log(event); // PointerEvent {…}
},
// 备注:目前即使传了参数,不使用$event站位也能接受event
click2: function (num, event) {
alert('click2 --- ' + num);
console.log(event); // PointerEvent {…}
},
},
});
</script>
</body>
注意:
-
methods中配置的函数不能是箭头函数,因为箭头函数this指向window
-
methods中配置的函数都被vue所管理,this指向vm或组件实例对象
事件修饰符
v-on提供了六种事件修饰符
-
.prevent
阻止默认事件(常用) -
.stop
阻止事件冒泡(常用) -
.once
事件只触发一次(常用) -
.capture
使用事件的捕获 -
.self
只有event.target是当前操作的元素时才触发事件 -
.passive
事件的默认行为立即执行,无需等待事件回调执行完毕
<body>
<div id="app">
<a href="https://blog.byboy.cn" @click.prevent="click">点击跳转</a>
</div>
<script>
const vm = new Vue({
el: '#app',
data() {
return {
count: 0,
};
},
methods: {
click() {
console.log('使用了.prevent修饰符,不会跳转了');
},
},
});
</script>
</body>
阅读剩余
THE END