Implementa el hook useFetch en React

Aprende a crear un hook personalizado useFetch en React para gestionar datos, estado de carga y errores con useEffect y AbortController; buenas prácticas.

18 ago 2025 • 4 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Introducción: React ha transformado la forma de construir aplicaciones web gracias a su arquitectura basada en componentes y su estilo declarativo. A medida que los proyectos crecen es esencial abstraer la lógica en piezas reutilizables y composables, y ahi es donde los hooks personalizados destacan. Una pregunta frecuente en entrevistas para desarrolladores React es como crear un hook personalizado para obtener datos, por ejemplo implementando un useFetch.

Que son los hooks personalizados: Los hooks personalizados en React permiten reutilizar logica entre componentes. Siempre comienzan con la palabra use y encapsulan comportamiento usando hooks nativos como useState y useEffect para gestionar estado y efectos secundarios.

Resumen de implementacion: Un useFetch comunmente gestiona tres estados: datos, error y loading. Usa useEffect para lanzar la peticion cuando cambia la url y utiliza AbortController para cancelar la peticion si el componente se desmonta. Ademas valida el estado HTTP y captura errores para evitar actualizaciones de estado innecesarias.

Estado: En el hook declaramos data inicializado en null, error en null y loading en true. Estos tres estados permiten a cualquier componente consumir el hook mostrar indicadores de carga y mensajes de error de forma sencilla.

UseEffect para el fetch: useEffect se ejecuta cuando cambia la variable url y dentro definimos una funcion asincrona fetchData que hace la llamada fetch y actualiza data o error segun corresponda. Al final de la peticion siempre ponemos loading en false para indicar que el proceso termino.

AbortController: Para evitar memory leaks y actualizaciones de estado despues de que un componente se desmonte usamos AbortController. Ejemplo de uso en codigo texto: const controller = new AbortController(); const signal = controller.signal; fetch(url, { signal }) y en la funcion de limpieza del useEffect llamamos controller.abort();

Gestión de errores: Tras obtener response verificamos response.ok y si no es asi lanzamos un error con el status para que el catch lo capture. Si el error es un AbortError simplemente lo ignoramos y no actualizamos estado. Para otros errores guardamos la informacion en error para que el componente lo muestre.

Valores retornados: El hook retorna un objeto con loading, data y error que facilita su consumo en cualquier componente: return { loading, data, error }.

Ejemplo de uso en componente explicado en texto: import React from react; import useFetch from ./useFetch; const UsersList = () => { const { loading, data, error } = useFetch(https://jsonplaceholder.typicode.com/users); if (loading) return un parrafo con Loading; if (error) return un parrafo con Error y error.message; de lo contrario devolver un listado mapeando data y mostrando el nombre de cada usuario. }

Buenas practicas adicionales: Manejar cancelacion con AbortController, soportar cabeceras y tokens de autenticacion en la llamada fetch, permitir opciones adicionales en el hook como metodo, body o cabeceras, y considerar caching simple para evitar llamadas redundantes cuando la misma url se solicita repetidamente.

Ventajas: Encapsular la logica de peticiones en un useFetch hace los componentes mas limpios, facilita testing y promueve la reutilizacion. Es ideal para aplicaciones a medida y proyectos que requieran software a medida donde la eficiencia y la mantenibilidad son criticas.

Sobre Q2BSTUDIO: Q2BSTUDIO es una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida. Ofrecemos soluciones de inteligencia artificial e ia para empresas que incluyen agentes IA personalizados y arquitectura de datos para servicios inteligencia de negocio. Ademas garantizamos niveles altos de ciberseguridad en todos los desarrollos y ofrecemos servicios cloud aws y azure para desplegar aplicaciones escalables y seguras. Si su proyecto necesita integracion con Power BI para analitica visual o servicios inteligencia de negocio, en Q2BSTUDIO proporcionamos consultoria, implementacion y soporte continuo.

Como Q2BSTUDIO integra el uso de hooks: En proyectos reales de Q2BSTUDIO usamos patrones como useFetch para centralizar llamadas a APIs en aplicaciones a medida y asi garantizar un manejo consistente de errores y estados de carga. Esto facilita combinar nuestras capacidades de inteligencia artificial, agentes IA y servicios cloud aws y azure con frontend reactivo y mantenible.

Palabras clave relevantes: 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. Estas areas son parte del core de servicios de Q2BSTUDIO y se integran en soluciones a medida para mejorar procesos de negocio y acelerar la toma de decisiones.

Conclusión: Implementar un hook useFetch en React es una practica sencilla que mejora la estructura del codigo y la experiencia de desarrollo. Para proyectos que requieren software a medida, inteligencia artificial e integraciones con servicios cloud aws y azure o Power BI, Q2BSTUDIO es un socio que aporta experiencia tecnica en desarrollo, ciberseguridad y servicios inteligencia de negocio. Contacte a Q2BSTUDIO para recibir asesoramiento y construir aplicaciones a medida que incorporen IA para empresas y agentes IA adaptados a sus necesidades.

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