useEventListener
Agregar detectores de eventos a un elemento DOM o al documento.
Características
- Elimina automáticamente el event listener cuando el componente se desmonta.
- Admite un objeto de referencia como elemento de destino.
- Puede especificar opciones de evento como
capture,onceypassive. - Soporte completo de TypeScript para el tipo de evento.
Instalación
Instala el custom hook desde su linea de comando.
npm i @raddix/use-event-listener
Usage
Agrega un evento al objeto global
En este ejemplo, se llamará a la función handle cuando se active el evento click en el objeto window.
De forma predeterminada, el detector de eventos se agregará al objeto global window. Por lo tanto, no es necesario especificar el objeto de destino.
Agrega un evento a un elemento
En este ejemplo, se llamará a la función handle cuando se produzca el evento
mousemove en el elemento div.
Para agregar un detector de eventos a un elemento, debe pasar su ref a la opción target.
API
Parámetros
| Parámetros | Description | Required | Type |
|---|---|---|---|
| type | El tipo de evento que se va a escuchar. Puede ser cualquier tipo de evento admitido por el navegador. | Si | string |
| handler | La función que se llama cuando se desencadena el evento. | Si | function |
| options | Las opciones de configuración. | No | object |
Opciones
| Opciones | Descripción | Requerido | Tipo |
|---|---|---|---|
| target | El elemento de destino al que agregar el detector de eventos. Puede ser un objeto de referencia o un elemento DOM. | No | RefObject | HTMLElement |
| capture | Un booleano que indica que los eventos de este tipo se enviarán al oyente registrado antes de enviarse a cualquier EventTarget debajo de él en el árbol DOM. | No | boolean |
| once | Un valor booleano que indica que el oyente debe invocarse como máximo una vez después de agregarse. Si es verdadero, el oyente se eliminará automáticamente cuando se invoque. | No | boolean |
| passive | Un valor booleano que indica que el oyente nunca llamará a preventDefault(). Si es así, el agente de usuario debería ignorarlo y generar una advertencia en la consola. | No | boolean |