Skip to main content
You are viewing Pre-Alpha documentation.
Vuetify0 Logo
Mode
Accessibility
Vuetify

useEventListener

A composable for handling DOM events with automatic cleanup on component unmount.

Intermediate100% coverageJan 8, 2026

Usage

The useEventListener composable attaches event listeners to DOM elements (Window, Document, or HTMLElement) with automatic cleanup when the component is unmounted. It supports reactive targets, multiple events, and multiple handlers.

UseEventListener
<script setup lang="ts">
  import { useEventListener, useWindowEventListener, useDocumentEventListener } from '@vuetify/v0'
  import { ref, useTemplateRef } from 'vue'

  // Track window dimensions
  const windowSize = ref({ width: window.innerWidth, height: window.innerHeight })
  useWindowEventListener('resize', () => {
    windowSize.value = {
      width: window.innerWidth,
      height: window.innerHeight
    }
  })

  // Handle keyboard shortcuts
  useDocumentEventListener('keydown', (e) => {
    if (e.ctrlKey && e.key === 's') {
      e.preventDefault()
      console.log('Save shortcut triggered')
    }
  })

  // Element-specific listener
  const button = useTemplateRef('button')
  useEventListener(button, 'click', () => {
    console.log('Button clicked!')
  })
</script>

<template>
  <div>
    <p>Window: {{ windowSize.width }}x{{ windowSize.height }}</p>
    <button ref="button">Click me</button>
  </div>
</template>

Architecture

useEventListener is the foundational event composable that others build upon:

Event Listener Hierarchy

Use controls to zoom and pan. Click outside or press Escape to close.

Event Listener Hierarchy

API Reference

The following API details are for the useEventListener composable.

Functions

useEventListener

(target: MaybeRefOrGetter<EventTarget>, event: any, listener: any, options?: MaybeRefOrGetter<boolean | AddEventListenerOptions>) => CleanupFunction

Attaches an event listener to a target.

useWindowEventListener

(event: any, listener: any, options?: MaybeRefOrGetter<boolean | AddEventListenerOptions>) => CleanupFunction

Attaches an event listener to the window.

useDocumentEventListener

(event: any, listener: any, options?: MaybeRefOrGetter<boolean | AddEventListenerOptions>) => CleanupFunction

Attaches an event listener to the document.

Was this page helpful?

© 2016-1970 Vuetify, LLC
Ctrl+/