vue Method 事件

Vue事件处理通过v-on指令实现,类似于addEventListener。它使得事件处理方法与DOM解耦,方便定位和测试。当ViewModel销毁时,事件处理器会自动移除。本文将介绍如何绑定事件、methods配置、$events、事件修饰符以及多重指令写法。
摘要由CSDN通过智能技术生成

简介

vue事件监听通过v-on指令配置在HTML中,相当于原生的addEventListener。所有的vue事件处理方法和表达式都严格绑定在当前视图的ViewModel上,采v-on指令有如下好处:
1)通过查看HTML模板便能轻松定位对应的方法
2)ViewModell和DOM完全解耦,易于测试
3)当一个ViewModel被销毁,所有的事件处理器都会自动删除

如何绑定


内联方式:

//绑定单击事件处理器click
<div v-on:click="greet">点击问候</div>
//简写
<div @click="greet">点击问候</div>

内联方式下一个事件处理器只能绑定一个方法,若需要绑定多个方法,只能通过原生addEventListener方法来绑定。

methods配置


用户绑定的事件需要在vue实例中进行定义,所有定义的方法都放在methods属性下

var vm = new Vue({
	el: '#app',
	methods: {
		greet() {
			console.log(’hello‘);
		}
	}
})
// 也可以在javascript中调用
vm.greet();

需要注意的地方:
1)methods中定义的方法内的this始终指向创建的vue实例
2)与事件绑定的方法支持参数event即原生DOM事件的传入
3)方法用在普通元素上时,只能监听原生DOM事件;用在自定义元素组件上时,也可以监听子组件触发的自定义事件

$events


vue中创建的方法需要访问原生DOM事件时可以直接传入event来获取。在内联语句处理器中需要访问原生DOM事件时,可以用一个特殊变量$event将其传入方法中。

<div @click="greet('hello', $event)"></div>

methods: {
	greet(msg, event) {
		event.preventDefault(); // 我们可以通过event访问原生事件对象
	}
}

事件修饰符


vue事件修饰符是以半角句号(.)开始的特俗后缀。
vue为v-on提供了四个修饰符(.prevent\ .stop \ .capture\ .self)+按键修饰符

  • prevent:用于阻止事件的默认行为,使之在HTML中便能完成操作
//使提交事件不再重载页面
<form @submit:prevent="onSubmit"></form>
  • stop :用于阻止事件冒泡
//阻止单击事件冒泡
<div @click.stop="deThis"></div>
  • capture:表示添加事件侦听器时采用捕获模式
<div @click.capture="doThis"></div>
  • self:当事件在该元素本身而非子元素触发时 触发回调
<div @click.self="doThis"></div>
  • 按键:监听键盘事件
<input @keyup.13="submit"></div>
//同上
<input @keyup.enter="submit"></div>

完整的按键别名如下:
.enter(13)
.tab(9)
.delete(46)
.esc(27)
.space(32)
.up(38)
.down(40)
.left(37)
.right(39)

多重指令写法

//1.0
<div @click="handleClick" @keyup="handleKeyUp" @keydown="handleKeyDown"></div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值