Desafío de Codificación: Pregunta 17 - Práctica diaria de código

Código personalizado en React con TypeScript: Creación de un hook useHover para renderizar contenido condicional según el estado de hover de un elemento. Este hook proporciona una referencia para asignar a un elemento y un booleano que indica si ese elemento está siendo hovered, con una implementaci

2 oct 2025 • 3 min de lectura • Equip Q2BSTUDIO

inteligencia-artifial-software-aplicaciones

Desafío de Codificación: Pregunta 17 - Práctica diaria de código. En este artículo reescribo y traduzco al español el reto original sobre cómo crear un hook personalizado useHover en React con TypeScript para mostrar renderizado condicional según el estado de hover de un elemento.

Objetivo: crear un hook que proporcione un ref para asignar a un elemento y un booleano que indique si ese elemento está siendo hovered. El patrón general es sencillo y útil en interfaces interactivas.

Paso 1 Crear referencias y estado: utiliza useRef para el nodo del elemento y useState para el estado hovered. Ejemplo conceptual sin código literal: declara const ref = useRef<T>(null) y const isHovered = useState(false).

Paso 2 Obtener el nodo: dentro de un efecto obtiene el nodo con const node = ref.current. Si no existe, abandona el efecto para evitar errores.

Paso 3 Detectar entrada del ratón: crea una función que actualice el estado a verdadero cuando el cursor entra en el elemento, por ejemplo handleMouseEnter que llama a setIsHovered(true).

Paso 4 Detectar salida del ratón: crea una función handleMouseLeave que recibe el evento tipo MouseEvent y comprueba event.relatedTarget para saber si el cursor salió hacia un elemento contenido o hacia otro lugar. Si el nodo existe y no contiene el relatedTarget entonces establece el estado a falso.

Paso 5 Añadir y limpiar listeners: dentro de useEffect añade listeners al nodo con addEventListener para los eventos mouseenter y mouseleave. Devuelve una función de limpieza que elimina esos listeners con removeEventListener para evitar fugas de memoria cuando el componente se desmonte o se actualice.

Resultado esperado del hook: una función que devuelve un array o tupla con el ref y el booleano hovered, por ejemplo return [ref, isHovered], y que puede usarse en un componente App donde se asigna el ref al elemento en el DOM y se muestra contenido condicional como hovered o not hovered basándose en el booleano.

Consejos prácticos: evita manipular directamente el DOM fuera de los listeners, mantén las dependencias del efecto correctas para que la limpieza se ejecute bien, y considera usar pointer events si necesitas soporte táctil más elaborado.

En Q2BSTUDIO transformamos retos como este en soluciones reales. Somos una empresa de desarrollo de software y aplicaciones a medida, especialistas en inteligencia artificial, ciberseguridad y servicios cloud. Si buscas desarrollar una aplicación o software a medida, visita nuestra página de desarrollo de aplicaciones a medida y descubre cómo podemos ayudarte a diseñar una experiencia robusta y escalable.

Además ofrecemos servicios de inteligencia artificial, agentes IA y soluciones de IA para empresas que optimizan procesos y mejoran la toma de decisiones; conoce más sobre nuestras propuestas de inteligencia artificial. También trabajamos ciberseguridad y pentesting, servicios cloud AWS y Azure, servicios de inteligencia de negocio y Power BI, automatización de procesos y todo lo necesario para que tu producto sea seguro, eficiente y preparado para escalar.

Palabras clave integradas para mejorar posicionamiento: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi. Si necesitas que te mostremos una implementación completa del hook con ejemplos en TypeScript y pruebas, podemos entregarte código listo para integrar en tu repo y adaptar el patrón a tus componentes.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat