En este tutorial, exploraremos cómo crear una base de datos utilizando Google Sheets en formato Excel (.csv) y cómo realizar solicitudes de datos (fetch) en nuestra aplicación de ReactJS con Next.js y API Routes. Este enfoque no solo es práctico y accesible, sino que también es ideal para proyectos más simples o prototipos.
GerArt
¡Bienvenidos a ésta sección de arte y dibujo!
Es importante tener en cuenta que los dibujos presentados aquí y los precios son subjetivos y es una desmostración, son solo para fines de ejemplo y los dibujos están protegidos por derechos de autor. Apreciamos y respetamos el trabajo artístico de mi hermano el creador. Ahora, sumerjámonos juntos en el fascinante mundo del arte, la creatividad y la tecnología. ¡Sigamos explorando!
Bien para darle vida a ésto seguiremos los siguientes pasos
Vamos a empezar por crear nuestra tabla en Excel con hojas de cálculo de google.
Creamos una nueva hoja de cálculo y la llenamos con nuestros datos. También vamos a delimitar nuestra tabla con: id, name, description, image, price.Podemos completar la tabla y agregar ítems en las columnas para obtener más información. Puedes proporcionar una ubicación de algún enlace de imagen; por ejemplo, en mi caso, he utilizado imágenes de un repositorio de GitHub y, para probar, un enlace de Google Fotos.
Una vez creada nuestra tabla, podemos acceder a ella mediante la opción de Google para compartir y publicar en la web. Vamos a la opción deArchivo=>Compartir=>Publicar en la Web.
A continuación nos aparecerá una ventana como ésta:
Seleccionamos valores separados por comas que es un archivo.csvy le damos enPublicar.
Esto nos generará un link con nuestro archivo de google sheets en formato.csvpara poder requerirlo en nestra aplicación web. A continuación veremos lo siguiente:
Explicando un poco el desglose del código, en la obtención asíncrona de datos mediante el uso de useEffect, creamos una constanteresponse que espera la respuesta de nuestro archivo de Google Sheets. Además, creamos una constantecsvque espera el archivo en formato "CSV" y extrae su texto.
Cuando trabajas con múltiples arrays de listas obtenidas de un archivo CSV, es posible que desees optimizar el rendimiento del renderizado. Una técnica efectiva es utilizar el métodoreduceen JavaScript, reduce te permite acumular un valor único al iterar sobre un array, en este caso, un objeto que contiene varias listas. Aquí hay una explicación más detallada en la cual utilizopapaparse para manejar el CSV:
PapaParsees una biblioteca de JavaScript que se utiliza para analizar archivos CSV en el navegador o en entornos Node.js. La biblioteca facilita el trabajo con datos en formato CSV, proporcionando funciones para convertir cadenas CSV en objetos JavaScript y viceversa.
Algunas características clave dePapaParseincluyen:
Facilidad de uso: PapaParse simplifica el proceso de análisis de archivos CSV en comparación con implementaciones manuales. Proporciona una interfaz fácil de usar para trabajar con datos CSV.
Soporte para diferentes formatos: Puede manejar una variedad de formatos CSV, incluso aquellos con delimitadores personalizados, saltos de línea y otros ajustes específicos.
Procesamiento en segundo plano: PapaParse puede ejecutarse en segundo plano (usando Web Workers) para no bloquear el hilo principal del navegador, permitiendo la carga y procesamiento eficiente de grandes conjuntos de datos CSV.
Configuración de opciones: Ofrece diversas opciones de configuración, como la especificación del delimitador, la fila de encabezado, el manejo de comillas, entre otras, para adaptarse a las necesidades específicas de análisis.
Lo primero que tenemos que hacer es instalar la dependencia:
bash
1npm install papaparse
Pueden estudiar la documentación para entender que opciones de configuración y manipulación del CSV tiene
50console.error("Error al parsear el CSV 😢:", error);
51setLoading(false);
52},
53});
54}catch(error){
55console.error("Error al hacer el fetching de data 🤔:", error);
56setLoading(false);
57}
58};
59
60fetchData();
61},[columnNamesFetch, customURL]);
62
63return{ data, loading };
64};
65
66exportdefault useData;
De esta manera, creamos un componente reutilizable que nos permite renderizar diferentes arrays fácilmente. Este enfoque proporciona flexibilidad al adaptarse a diferentes conjuntos de datos, permitiéndonos utilizar el mismo componente para diversos propósitos. Por ejemplo:
Este es un ejemplo básico para poder utilizar el componente de manera adecuada, incluye una ternaria para verificar si el item existe, hay otras lógicas para renderizar de acuerdo a sus preferencias, pueden usar el operador&&:
javascript
1{CSV.ITEM&&(
2<div>
3<span>{CSV.ITEM}</span>
4<h1>{CSV.TITLE}</h1>
5<img src={CSV.IMAGE} alt="Image Item"/>
6<p>{CSV.DESCRIPTION}</p>
7<span>{CSV.PRICE}</span>
8<a href={CSV.URL}>Ir al ítem</a>
9</div>
10)}
¡Gracias por acompañarnos hasta el final de este artículo! Hemos concluido, y espero que puedan aplicar lo aprendido según sus necesidades.
¡Si les gusta el diseño y efecto de las cajas que contienen los dibujos! Utilizo Atropos js la cuál he modificado a mi gusto el estilo de las mismas.
Aquí les dejo el enlace para que puedan leer su documentación y utilizarlo, es de código abierto y tiene otros asombrosos efectos de cartas 3d las cuales utilizo en ésta web;