Rubén Ernesto Aragón Gil
Donovan RM
Kenneth Angulo L
Donovan RM
Kenneth Angulo L
const $body = document.querySelector('body'); const API = "https://api.escuelajs.co/api/v1/products/?offset=5&limit=10"; import logo from "./assets/logo.png"; import './styles/style.css'; const main = async () => { const response = await fetch(API); const products = await response.json(); const output = products.map((products) => { return ` <article class="Card"> <img src="${product.images[0]}" /> <h3> ${product.title} <small>Precio $${product.price}}</small> </h3> </article> `; }).json(''); const newItem = document.querySelector('section'); newItem.classList.add('Items'); newItem.innerHTML = output; const newHeader = document.createElement('header'); const newImage = document.createElement('img'); newImage.src = logo; newHeader.appendChild(newImage); $body.appendChild(newHeader); $body.appendChild(newItem ) }; main();
Ojo el codigo tiene errores: Acá estan las correcciones:
const $body = document.querySelector("body"); const API = "https://api.escuelajs.co/api/v1/products/?offset=5&limit=10"; import logo from "./assets/logo.png"; import './styles/style.css'; const main = async () => { const response = await fetch(API); const products = await response.json(); const output = products.map((product) => { return ` <article class="Card"> <img src="${product.images[0]}" /> <h3> ${product.title} <small>Precio $${product.price}}</small> </h3> </article> `; }).join(''); const newItem = document.createElement("section"); newItem.classList.add('Items'); newItem.innerHTML = output; const newHeader = document.createElement('header'); const newImage = document.createElement('img'); newImage.src = logo; newHeader.appendChild(newImage); $body.appendChild(newHeader); $body.appendChild(newItem); }; main();
¿Cuándo debo manipular el DOM con Vanilla JavaScript?
Debes usar Vanilla JavaScript cuando construyes proyectos pequeños, landing pages de carga ultrarrápida, o cuando necesitas un control absoluto sobre el rendimiento sin el peso extra de una librería.
Entender cómo crear elementos con document.createElement o inyectar nodos con appendChild es fundamental porque es exactamente lo que hacen React, Vue o Svelte por debajo. Estos frameworks simplemente te ofrecen una sintaxis más declarativa y amigable. Dominar la manipulación directa del DOM te convierte en un desarrollador mucho más versátil: te permite depurar errores complejos en cualquier framework, optimizar cuellos de botella en el renderizado y construir tus propias herramientas si el proyecto lo requiere. Es la base inquebrantable del desarrollo web.
Code:
const $body = document.querySelector("body"); const API = "https://api.escuelajs.co/api/v1/products/?offset=5&limit=10"; import logo from "./assets/logo.png"; import './styles/style.css'; const main = async () => { const response = await fetch(API); const products = await response.json(); const output = products.map((product) => { return ` <article class="Card"> <img src="${product.images[0]}" /> <h3> ${product.title} <small>Precio $${product.price}}</small> </h3> </article> `; }).join(''); const newItem = document.createElement("section"); newItem.classList.add('Items'); newItem.innerHTML = output; const newHeader = document.createElement('header'); const newImage = document.createElement('img'); newImage.src = logo; newHeader.appendChild(newImage); $body.appendChild(newHeader); $body.appendChild(newItem); }; main();
¿Cuál es la mejor forma de insertar imágenes?
La mejor forma de insertar elementos dinámicos, como imágenes, depende del contexto, pero usar document.createElement('img') combinado con appendChild es la estrategia más segura y estructurada.
Al crear el nodo directamente en la memoria de JavaScript, tienes control total sobre sus atributos antes de que exista en la pantalla. Puedes asignarle el src (la ruta de tu logo), clases CSS o eventos de carga sin tocar el HTML existente. Una vez que el elemento está completamente configurado, lo inyectas en su contenedor padre (como un header). Este enfoque previene problemas de seguridad como ataques XSS (Cross-Site Scripting) que pueden ocurrir al usar innerHTML con datos no sanitizados, y hace que tu código sea mucho más predecible y fácil de mantener.