Vue 事件处理操作实例详解

2020-06-14 06:25:16易采站长站整理

本文实例讲述了Vue 事件处理操作。分享给大家供大家参考,具体如下:

1 监听事件

可以用

v-on
指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。

html:


<div id="app1">
<button v-on:click="counter +=1">递增</button>
<p>按钮已被点击 {{ counter }} 次。</p>
</div>

js:


var app1 = new Vue({
el: "#app1",
data: {
counter: 0
}
});

效果:

2 事件处理方法

然而许多事件处理逻辑会更为复杂,所以直接把 JavaScript 代码写在

v-on
指令中是不可行的。因此v-on还可以接收一个需要调用的方法名称。

html:


<div id="app2">
<button v-on:click="greet">问候</button>
</div>

js:


var app2 = new Vue({
el: "#app2",
data: {
name: 'Deniro'
},
methods: {
greet: function (event) {
//这里的 this 指向的是当前 Vue 实例
console.log('你好 ' + this.name + '!');
if (event) {
console.log(event.target.tagName);
}
}
}
});

效果:

也可以直接调用 Vue 实例定义的函数:

3 内联处理器中的方法

除了直接绑定到一个方法,也可以在内联 JavaScript 语句中调用方法:

html:


<div id="app3">
<button v-on:click="greet('你好')">问候</button>
</div>

js:


var app3 = new Vue({
el: "#app3",
methods: {
greet: function (message) {
console.log(message);
}
}
});

有时也需要在内联语句处理器中访问原始的 DOM 事件。可以用特殊变量

$event
把它传入方法:

html:


<button v-on:click="warn('表单已被禁用',$event)">提交</button>

js:


methods: {
...
warn: function (message,event) {
//访问原生对象
if(event){
event.preventDefault();
}
console.log(message);