01
可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。
<div id="app">
<button v-on:click="counter += 1">加 1</button>
<p>按钮被点击了 {{ counter }}次.</p>
</div>
var example1 = new Vue({
el: '#app',
data: {
counter: 0
}
})
02
事件处理方法
我们可以在vue实例methods中定义一个方法来处理vue监听的事件
<div id="app">
<button v-on:click="greet">问候</button>
</div>
var app = new Vue({
el:'#app',
data:{
name:'Vue.js'
},
methods:{
greet:function(event){
// 'this' 在方法里指向当前 Vue 实例
alert('你好'+this.name+'!');
// 'even' 是原生 DOM事件
if(event){
alert(event.target.tagName)
// event.target是触发事件的元素
}
}
}
})
// 也可以用JavaScript 直接调用
app.greet();
03
事件绑定简写方式
<button @:click="greet">问候</button>
04
事件修饰符
在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求
为了解决这个问题,Vue.js 为 v-on 提供了事件修饰符。之前提过,修饰符是由点开头的指令后缀来表示的。
-
.stop
-
.prevent
-
.once
<!-- 阻止单击事件继续传播 -->
<av-on:click.stop="doThis"></a>
<!-- 提交事件不再重载页面 -->
<formv-on:submit.prevent="onSubmit"></form>
<!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a>
<!-- 点击事件将只会触发一次 -->
<a v-on:click.once="doThis"></a>
按键修饰符
在监听键盘事件时,我们经常需要检查详细的按键。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:
<!-- 只有在 `key` 是 `Enter` 时调用 `vm.submit()` -->
<input v-on:keyup.enter="submit">
<input v-on:keyup.page-down="onPageDown">
按键码
使用 keyCode 特性也是允许的:
<input v-on:keyup.13="submit">
Vue 提供了绝大多数常用的按键码的别名:
-
.enter
-
.tab
-
.delete
(捕获“删除”和“退格”键) -
.esc
-
.space
-
.up
-
.down
-
.left
-
.right