useEventListener

A function that attaches an automatically disposed event listener.

Demo

You've clicked the document 0 times

Usage

This is better utilized in elements that you don't have direct control over. Otherwise, use normal event listeners.

For example, if you want to listen to a click event on the body, and can't use <svelte:body />, or you have an element reference that was passed down.

	// ClickLogger.ts
import { useEventListener } from "runed";
 
export class ClickLogger() {
  #clicks = $state(0)
 
  constructor() {
    useEventListener(() => document.body, "click", () => this.#clicks++);
  }
 
  get clicks() {
    return this.#clicks
  }
}	
	<script lang="ts">
  import { ClickLogger } from "./ClickLogger.ts";
 
  const logger = new ClickLogger();
</script>
 
<p>You've clicked the document {logger.clicks} {logger.clicks === 1 ? "time" : "times"}</p>	
MIT

© 2024 Svecosystem Team