Creación de SPA con Vanilla JavaScript y Parcel
Clase 12 de 23 • Curso de Introducción a Empaquetadores Web
Resumen
¿Cómo construir la lógica de nuestro proyecto con Parcel y Vanilla JavaScript?
Para los desarrolladores web, es esencial comprender cómo optimizar la carga y el rendimiento de un proyecto. Parcel, una herramienta de empaquetado web, nos permite centrarnos en la lógica del proyecto sin preocuparnos demasiado por configuraciones complejas. Con esto en mente, construiremos una aplicación utilizando HTML, CSS y JavaScript, aprovechando al máximo lo que Parcel tiene para ofrecer.
¿Cómo estructuramos la función principal con async/await?
Iniciaremos creando una función asincrónica llamada main
que contendrá la lógica para:
- Manipular elementos del DOM: Permitiendo la interacción dinámica de la página.
- Hacer llamadas a la API: Utilizaremos
fetch
yasync/await
para gestionar respuestas de forma ordenada. - Mantener la aplicación simplificada: Usaremos Vanilla JavaScript, brindándonos una comprensión más clara sin frameworks.
¿Cómo hacemos la llamada a la API y transformamos datos a JSON?
Para interactuar con los datos de la API, debemos entender y probar su estructura en un entorno seguro. Una vez dentro de nuestra función main
, haremos lo siguiente:
const main = async () => {
const response = await fetch('URL_DE_LA_API');
const products = await response.json();
};
fetch
: Nos permite obtener datos de la API de manera eficiente.await response.json()
: Transformamos los datos obtenidos a formato JSON para manipularlos fácilmente.
¿Cómo creamos un template con los productos obtenidos?
Una vez con los datos JSON, debemos generar un HTML dinámico que se injertará en el DOM. Para esto:
- Iteramos sobre los productos: Usaremos
map
para tratar cada artículo. - Creamos una plantilla HTML: Con
template literals
y handlebars para integrar datos. - Inyectamos en el DOM: Usando
appendChild
.
const output = products?.map(product => {
return `
<article class="card">
<img src="${product.images[0]}" alt="${product.title}">
<h2>${product.title}</h2>
<small>$${product.price}</small>
</article>
`;
}).join('');
const newItem = document.createElement('section');
newItem.classList.add('items');
newItem.innerHTML = output;
document.getElementById('app').appendChild(newItem);
map
yjoin
: Nos permite transformar y unir nuestros datos en un solo string HTML.template literals
: Facilitan la construcción de cadenas de texto dinámicas.
¿Cómo gestionar el despliegue y compilación local con Parcel?
Finalmente, nuestro proyecto necesita ser compilado y verificado en un servidor local. Añadiremos scripts y configuraciones para esto, pero primero nos aseguraremos de que nuestra lógica principal funcione correctamente llamando a main
:
main();
Estaremos listos para configurar scripts que faciliten la compilación y despliegue, habilitando la visualización y pruebas en tiempo real en nuestro entorno de desarrollo.
Este enfoque no solo fortalece nuestra habilidad de crear aplicaciones eficientes sin necesidad de frameworks complejos, sino que también subraya la importancia de dominar las bases del desarrollo web con tecnologías fundamentales. ¡Continúa practicando y explorando para desarrollar proyectos cada vez más sofisticados!