Manejo de Plantillas en AstroJS
Clase 13 de 14 • Curso de Desarrollo Web rápido con Astro
Resumen
¿Cómo darle forma y estructura a un sitio web con Astro?
Nuestro sitio web está tomando forma, y es clave poder concretar la estructura inicial para tener una base sólida de desarrollo. Hemos comenzado incorporando productos, y ahora es importante crear la página de inicio que tanto necesita nuestra plataforma. En este proceso, utilizaremos Hyper UI para refinar el home con un llamado a la acción (CTA) y mostrar nuestros productos más destacados.
¿Cómo gestionar la estructura de la página de inicio?
Para comenzar a trabajar en el diseño de la página de inicio, nos dirigimos directamente al archivo index
. En este documento, inicialmente se encuentran elementos básicos de Astro que debemos eliminar para implementar el nuevo diseño. Conviene estructurar la página comenzando por los productos, utilizando el método get collection
para llamar a la información que hemos trabajado previamente en la página de productos.
¿Cómo implementar el layout base?
En nuestro proyecto, ya hemos diseñado algunas estructuras base que resultan útiles para estandarizar el diseño. Podemos importar estas estructuras utilizando TypeScript y, así, facilitar la administración de rutas y evitar errores comunes que puedan surgir al mover o editar archivos.
Implementación de paths en TypeScript:
// tsconfig.json
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@layouts/*": ["src/layouts/*"],
"@components/*": ["src/components/*"]
// Más rutas según sea necesario
}
}
}
Este cambio implica utilizar alias, como @layouts
, para referenciar directorios desde cualquier parte del proyecto, simplificando la gestión de importaciones.
¿Cómo ordenar y filtrar los productos?
Una de las funcionalidades es presentar los productos de manera organizada. Para ello, implementamos ordenamiento por fecha u otros criterios según las reglas de negocio. Podríamos aplicar filtros adicionales, como productos nuevos o destacados, mediante flag booleanos o etiquetas.
// Ordenamiento desc. por fecha de actualización
products.sort((a, b) => {
return new Date(b.data.update).valueOf() - new Date(a.data.update).valueOf();
});
¿Cuál es el siguiente paso para mejorar la presentación del sitio web?
Hemos planteado crear un nuevo layout, products
, que permita recibir y mostrar la lista de productos. Esto requiere reutilizar componentes existentes y, quizás, refactorizar o renombrar ciertos elementos para que sean más comprensibles y versátiles.
Creación y uso del nuevo layout products
:
// Creación de un nuevo layout llamado products.astro
---
const { products } = Astro.props;
---
<div>
{products.map(product => (
<Product key={product.id} {...product} />
))}
</div>
¿Cómo unificar y presentar los productos en el Home?
La implementación del nuevo layout products
incluye la carga y presentación de productos destacados en el Home. Esta parte del proceso implica optimizar el HTML y CSS del proyecto, ajustando los contenedores y aplicando estilos adecuados con Tailwind CSS para asegurar que los productos se muestren correctamente.
Ejemplo de configuración del contenedor máximo con Tailwind CSS:
<div class="max-w-screen-xl mx-auto">
<!-- Contenido del sitio -->
</div>
Con estos ajustes, podemos lograr que las diferentes partes del sitio se integren correctamente y ofrezcan una experiencia de usuario fluida. Utilizar contenedores y divisiones de forma precisa es crucial para mantener la armonía visual y estilística de la plataforma.
¿Qué considerar al continuar con el desarrollo?
Al desarrollar, es vital tener una estructura clara y lógica en el código, buscando siempre la reutilización y modularización de componentes para mantener el código limpio y manejable. Además, es recomendable optimizar el rendimiento del sitio, considerando prácticas de desarrollo web modernas y eficaces. Continuar integrando y ajustando las funcionalidades conforme a las necesidades del proyecto será la clave para su éxito y sostenibilidad.