Vue.js 事件处理器

vue中 事件监听可以使用 v-on 指令

通常情况下,我们需要使用一个方法来调用 JavaScript 方法。

<div id="app">
  <button v-on:click="handleClick">handleClick</button>
</div>
 
<script>
var app = new Vue({
  el: '#app',
  data: {
    name: 'Vue.js'
  },
  methods: {
    handleClick: function (event) {
      alert('Hello ' + this.name + '!')
      if (event) {
          alert(event.target.tagName)
      }
    }
  }
})
</script>

v-on 可以接收一个定义的方法来调用。

除了直接绑定到一个方法,也可以用内联 JavaScript 语句,这里就不做说明了。

事件修饰符

Vue 为 v-on 提供了事件修饰符来处理 DOM 事件细节,如:event.preventDefault() 或 event.stopPropagation()。

Vue 通过由点 . 表示的指令后缀来调用修饰符。

类型 说明
.stop 阻止冒泡
.prevent 阻止默认事件
.capture 阻止捕获
.self 只监听触发该元素的事件
.once 只触发一次
.left 左键事件
.right 右键事件
.middle 中间滚动事件

 


<a v-on:click.stop="handleThis">阻止单击事件冒泡</a> <form v-on:submit.prevent="handleSubmit">提交事件不再重载页面</form> <a v-on:click.stop.prevent="handleThat">修饰符可以串联</a> <form v-on:submit.prevent>只有修饰符</form> <div v-on:click.capture="handleThis">添加事件侦听器时使用事件捕获模式</div> <div v-on:click.self="handleThat">只当事件在该元素本身(而不是子元素)触发时触发回调</div> <a v-on:click.once="handleThis">click 事件只能点击一次</a>

只有修饰符

添加事件侦听器时使用事件捕获模式

只当事件在该元素本身(而不是子元素)触发时触发回调

按键修饰符

vue 允许为 v-on 在监听键盘事件时添加按键修饰符:

<input v-on:keyup.13="submit">

记住所有的 keyCode 比较困难,所以 vue 为最常用的按键提供了别名:

名称 说明
.enter 回车
.tab 切换
.delete 删除,退回
.esc 取消
.space 空格
.up
.down
.left
.right
.ctrl  
.alt  
.shift  
.meta