Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

VueJS - Event Handling

Handling Events in VueJS

Event handling in VueJS allows you to respond to user interactions and trigger actions in your application. This guide covers the basics of handling events in VueJS, including listening for events, using event modifiers, and creating custom events.

Key Points:

  • VueJS uses the v-on directive to listen for DOM events and execute methods.
  • Event modifiers provide additional functionality, such as preventing default actions or stopping event propagation.
  • Custom events allow you to communicate between components and trigger actions programmatically.

Listening for Events

Basic Usage

The v-on directive is used to listen for DOM events and execute methods:



Shorthand

You can use the shorthand @ for the v-on directive:



Event Modifiers

.prevent

The .prevent modifier is used to call event.preventDefault() on the triggered event:



.stop

The .stop modifier is used to call event.stopPropagation() on the triggered event:



.capture

The .capture modifier adds the event listener in capture mode:



.once

The .once modifier ensures the event listener is triggered at most once:



Custom Events

Emitting Events

Custom events allow you to communicate between components. Use the $emit method to emit a custom event:



Vue.component('child-component', { template: '', methods: { emitEvent() { this.$emit('custom-event'); } } }); const app = new Vue({ el: '#app', methods: { handleEvent() { alert('Custom event triggered!'); } } });

Listening for Custom Events

Listen for custom events in the parent component using the v-on directive or its shorthand:



Vue.component('child-component', { template: '', methods: { emitEvent() { this.$emit('custom-event'); } } }); const app = new Vue({ el: '#app', methods: { handleEvent() { alert('Custom event triggered!'); } } });

Event Handling in Forms

Basic Usage

Use the v-model directive to create two-way data bindings on form elements and handle form submissions with v-on:



Input value: {{ inputValue }}

Best Practices

Follow these best practices when handling events in VueJS:

  • Use Methods: Define methods in the Vue instance instead of using inline handlers to keep your templates clean and maintainable.
  • Leverage Event Modifiers: Use event modifiers like .prevent, .stop, .capture, and .once to control event behavior effectively.
  • Emit Custom Events: Use custom events to communicate between components and keep your application modular and decoupled.
  • Handle Form Events: Use the v-model directive for two-way data binding and handle form submissions with v-on.
  • Document Event Handlers: Document your event handlers and custom events to make your code easier to understand and maintain.

Example Application

Here is an example application that demonstrates handling various events, using event modifiers, and emitting custom events:



Event Handling Example

Input value: {{ inputValue }}

Vue.component('child-component', { template: '', methods: { emitEvent() { this.$emit('custom-event'); } } }); const app = new Vue({ el: '#app', data: { inputValue: '' }, methods: { showAlert() { alert('Button clicked!'); }, onSubmit() { alert('Form submitted with: ' + this.inputValue); }, handleEvent() { alert('Custom event triggered!'); } } });

Summary

This guide provided an overview of handling events in VueJS, including listening for DOM events, using event modifiers, and emitting custom events. By understanding and utilizing these features, you can create interactive and responsive user interfaces with VueJS.