Consumo de APIs con TankstackQuery y React TypeScript
Clase 27 de 31 • Curso de React Avanzado
Resumen
¿Qué es Tankstack Query y cómo puede beneficiar tu proyecto?
Tankstack Query, anteriormente conocido como ReactQuery, es una poderosa herramienta para consumir APIs que ha evolucionado para ser compatible con más que solo React. Este cambio de nombre refleja la capacidad de usarlo con diversas tecnologías como Vanilla JavaScript, TypeScript, Vue y Svelte, lo cual abre un mundo de posibilidades al crecimiento y flexibilidad en tu desarrollo. La utilización de bibliotecas como Tankstack Query proporciona ventajas significativas al gestionar de manera eficiente datos asincrónicos, haciendo el flujo de trabajo más simple y efectivo.
¿Cómo se crea un proyecto inicial con Tankstack Query?
Comenzar un proyecto utilizando Tankstack Query sin duda mejorará tu experiencia de programación. Para una aplicación React con TypeScript, se sigue este procedimiento básico:
- Crear el proyecto base: Utiliza
npm create vite
para establecer el entorno inicial. - Instalar dependencias: Una vez creado el proyecto, ejecuta
npm install
para instalar las dependencias iniciales. - Agregar Tankstack Query: Dirígete a la documentación oficial y copia el comando de instalación provisto para integrar Tankstack Query. Utiliza
npm run dev
para verificar que el proyecto se está ejecutando correctamente.
Este proceso asegura que tienes un entorno de trabajo limpio y optimizado para comenzar a trabajar con Tankstack Query.
¿Cómo estructurar y consumir datos con React y Tankstack Query?
Una estrategia eficaz para manejar datos es crucial, y Tankstack Query facilita este componente esencial de tu aplicación a través de características como el caché de datos. Para ejemplificar su uso, veremos cómo configurar un fetch de datos paginado, utilizando una estructura de datos JSON.
Creación de JSON y componentes fundamentales
- Estructuración del JSON: Añade un archivo
courses.json
en una carpeta llamadaAPI
dentro depublic
. Asegúrate de que incluya detalles como ID, título, descripción y duración. - Organización del proyecto: Crea dos carpetas en el directorio
SRC
:components
para los componentes de UI, yhooks
para funciones reutilizables.
Implementación de un fetch con Tankstack Query
Para gestionar el fetch de nuestro JSON, implementamos un hook customizado:
// Definimos la interfaz para tipificar los datos de los cursos.
interface Course {
id: number;
title: string;
description: string;
duration: string;
}
// Creamos la función fetch que se encargará de hacer la solicitud.
async function fetchCourses(): Promise<Course[]> {
const response = await fetch('/api/courses.json');
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
}
// Hook personalizado para usar en componentes
export const useCourses = () => {
return useQuery<Course[], Error>('cursos', fetchCourses);
};
Con este hook useCourses
, puedes integrar fácilmente los datos del JSON en los componentes de React, manteniendo la coherencia y el rendimiento del sistema gracias al manejo de errores y caché automático de Tankstack Query.
¿Qué es lo que hace especial a Tankstack Query?
La clave para el éxito con Tankstack Query es entender sus dos elementos esenciales: key y query function.
- Key: Permite identificar de manera única los datos que se almacenan en caché. Esto asegura que no ocurran refetch innecesarios, lo que mejora el rendimiento de la aplicación.
- Query Function: Es responsable de realizar el fetch y manejar el flujo de la información. Define la lógica asíncrona, esperando y manipulando los datos eficientemente.
Utilizar Tankstack Query en tu proyecto proporciona una base robusta para manejar la comunicación con la API, garantizando que tu aplicación sea rápida, eficiente y fácil de mantener. Este enfoque, sin duda, te impulsará a seguir desarrollando y optimizando tus aplicaciones futuramente.