Eventos y Modificadores en Vue: Focus y Blur en Searchbar

Clase 24 de 34Curso de Vue.js

Resumen

¿Cómo manejar eventos en Vue para inputs y botones?

Manejar eventos en Vue para elementos HTML como inputs o botones es un proceso que se realiza mediante la sintaxis BE ON, utilizando el símbolo de arroba (@) antes de los eventos, algo que hemos estado explorando. Los eventos típicos como el clic, el foco (focus), o cuando pulsamos una tecla hacia abajo, son comunes y poseen una sintaxis específica en Vue. Un ejemplo de su utilidad práctica es cuando se quiere iluminar el borde de un searchbar con un color al obtener el foco o al escribir en él.

Por ejemplo, para manejar el foco en un componente searchbar, podríamos utilizar un evento como @focus con un console.log("on focus") que nos indique cuando este evento ocurre. A su vez, este enfoque se aplica para otros eventos como @blur (que indica cuando un elemento ha perdido el foco).

¿Cómo implementar estados y funciones en Vue para eventos de inputs?

Para crear efectos de enfoque de manera dinámica, se pueden manejar estados utilizando la función ref de Vue, importándola en el componente:

import { ref } from 'vue';

const isActive = ref(false);

function onFocus() {
  isActive.value = true;
}

function onBlur() {
  isActive.value = false;
}

Con esta configuración, isActive determina el estado del input respecto a si tiene el foco o no, actualizándose con cada evento llamado.

¿Cómo se utilizan las propiedades computadas para eventos en Vue?

Las propiedades computadas en Vue son herramientas poderosas para ligar el estado de un componente a su representación visual. A continuación, se muestra cómo calcular dinámicamente las clases CSS de un searchbar dependiendo del estado de enfoque:

import { computed } from 'vue';

const searchClases = computed(() => {
  return isActive.value ? 'search active' : 'search';
});

Esta propiedad retorna una clase CSS que puede activar estilos diferentes cuando el searchbar está activo o inactivo, permitiendo así efectos visuales personalizados.

¿Cuáles son las mejores prácticas para manejar eventos y modificadores en Vue?

Al implementar eventos en Vue, recuerda que la sintaxis BE ON simplifica su manejo al evitar el uso de event listeners externos. Sin embargo, ten cuidado de no causar efectos secundarios no deseados que pueden afectar al rendimiento, especialmente en eventos que se ejecutan repetitivamente como onChange.

Vue también ofrece modificadores para los eventos, permitiéndote ajustar su comportamiento predeterminado. Algunos ejemplos incluyen:

  • .prevent: Evita que un evento, como el submit de un formulario, recargue la página completa.
  • .stop: Detiene la propagación de un evento en el DOM, útil para gestionar eventos sin que afecten a elementos padre.

Familiarízate con los modificadores y su potencial accediendo a la documentación oficial de Vue, ya que su correcta aplicación puede mejorar significativamente la funcionalidad y la eficiencia de tus aplicaciones Vue. ¡Sigue explorando y aplicando estos conocimientos en tus proyectos!