manipulacion-dom-con-ref-vuejs

Manipulación directa del DOM con ref en Vue.js

  • 3 min

En Vue.js, podemos usar ref para hacer referencias a elementos del HTML manipular directamente el DOM cuando es necesario.

En general, en Vue.js vamos a generar un enfoque declarativo para construir el interfaz de usuario. Es decir, normalmente no tendremos que tocar directamente los elementos del DOM.

Sin embargo, hay ciertas ocasiones donde va a ser necesario acceder y manipular elementos del DOM directamente (bibliotecas de terceros, animaciones complejas, ciertos casos complicados, etc).

Para ello, Vue.js proporciona la utilidad ref, que nos permite obtener referencias a elementos del DOM o a instancias de componentes.

Evita manipular el DOM directamente cuando sea posible. Vue.js está diseñado para manejar la mayoría de las interacciones con el DOM de manera declarativa.

Qué es ref en Vue.js

En Vue.js, podemos usar ref para crear una referencia reactiva un objeto o un elemento del DOM (además de para valores reactivos, como vimos al hablar de reactividad).

Para crear una referencia a un elemento del DOM, primero importamos ref desde Vue y luego la usamos en la función setup.

Por otro lado, en el template, usamos la directiva ref para vincular un elemento del DOM a la referencia creada.

<template>
  <div ref="miElemento">Este es un elemento del DOM</div>
</template>

<script setup>
import { ref, onMounted } from 'vue';

// Crear una referencia
const miElemento = ref(null);

onMounted(() => {
  // Acceder al elemento del DOM después de que se monte
  console.log(miElemento.value); // <div>Este es un elemento del DOM</div>
});
</script>

En este ejemplo,

  • miElemento es una referencia al <div> en el template.
  • Después de que el componente se monte (onMounted),
  • podemos acceder al elemento del DOM a través de miElemento.value.

Ejemplos prácticos