Plantillas en AstroJS

Clase 12 de 14Curso de Desarrollo Web rápido con Astro

Resumen

¿Cómo mostrar todos los productos en tu sitio web?

En el desarrollo de un sitio web, uno de los componentes clave es la capacidad para mostrar todos los productos de una manera fácil y llamativa para el usuario. Esto permite que los visitantes exploren lo que ofreces y eventualmente realicen una compra. Aquí utilizamos el enfoque de desarrollar una página utilizando Astro para mostrar todos los productos provenientes de una colección.

¿Cómo crear la estructura básica?

El primer paso consiste en establecer la estructura de nuestra página web en donde mostraremos los productos. Utilizaremos un plantilla de 'Hyper UI' que modificaremos según nuestras necesidades, aprovechando la flexibilidad de Tailwind UI en el proyecto.

En el archivo index.astro, creamos un bloque de lógica donde importamos y utilizamos funciones necesarias. La función clave aquí es getCollection de Astro, con la cual obtenemos todos los productos disponibles.

// Importamos la función necesaria de Astro
import { getCollection } from 'astro:content';

// Definimos una constante para obtener los productos
const product = await getCollection('products', { /* opcional: aplicación de filtros */ });

¿Cómo iterar y mostrar los productos?

Con la estructura básica lista, procedemos a renderizar cada producto utilizando un loop y HTML. Para ello utilizamos map para iterar sobre nuestros productos y generar la estructura de cada ítem dentro de una lista.

<ul>
  {product.map(product => (
    <li key={product}>
      <h2>{product.data.title}</h2>
      <p>{product.data.publishDate}</p>
      <p>${product.data.price}</p>
      <img src="default-image.jpg" alt="Product Image" />
    </li>
  ))}
</ul>

¿Cómo mejorar la visualización?

Aparte de incluir los títulos, fechas y precios, podrías querer añadir elementos como imágenes más dinámicas o medidas de clasificación para mejorar la experiencia del usuario. A futuro, añadir opciones para filtrar y ordenar los productos mejora la usabilidad.

Dentro de la plantilla, puedes incorporar un menú que permita alternar vistas de lista o de cuadrícula y una opción de clasificación. Aunque actualmente no las implementarás, es importante identificar su estructura en el código para hacerlo eventualmente.

¿Cómo incorporar otros componentes?

Finalmente, se sugiere incorporar componentes adicionales como un header y footer que se mantengan consistentes en todas las páginas de tu sitio web. Este paso asegura que cada página del sitio no solo es funcional, sino también ofrece una experiencia de usuario cohesiva.

Al implementar estos cambios, tu sitio web no solo mostrará todos los productos disponibles, sino que proporcionará una experiencia de navegación mejorada que invita al usuario a explorar y comprar. Adicionalmente, puedes agregar más productos, tomar capturas de pantalla de tu progreso y compartirlas para recibir feedback.

Siempre anima a seguir explorando, aprendiendo y mejorando. El proceso de desarrollo web es continuo y cada iteración hizo a tu proyecto no solo más completo, sino cada vez más profesional.