Vue Event Handling

Event Handling plays a crucial part in any web application. The Vue Framework makes it easy to listen and respond to DOM Events with the v-on directives.

v-on

The v-on directive is used to listen and respond to DOM events. The event type follows the v-on directive separated by a colon. The value of the v-on directive contains a JavaScript expression, which is executed when the specified event occurs.

const app = Vue.createApp({
  data: function () {
    return { counter: 0 }
  }
})

const vm = app.mount('#app')
<div id="app">
  <button v-on:click="counter++">Button clicked {{ counter }} times</button>
</div>

Event Types

The v-on directive is used to listen to native DOM events. The event type is specified using a colon.

The following examples are some of the possible event types that can be added to the v-on directive.

<!-- event type: click -->
<button v-on:click="doThis"></button>

<!-- event type: keyup -->
<input type="text" v-on:keyup="doThis">

<!-- event type: change -->
<select v-on:change="doThis"></select>

<!-- event type: submit -->
<form v-on:submit="doThis"></form>

Shorthand

The shorthand for the v-on directive is the @ character followed by the event type. No colon is required.

<button @click="counter++">Click me!</button>