CodeForge

Maquetación Web Dinámica / JavaScript para maquetadores: darle vida al DOM

Render desde datos: crear elementos dinámicamente

Teoría22 min20 XP

Las apps modernas no tienen su contenido escrito a mano en el HTML: tienen DATOS (un array de noticias, productos, tareas) y GENERAN el HTML a partir de ellos. Cambian los datos, se redibuja la interfaz. Este patrón —render desde datos— es el corazón de React, Vue y toda app seria, y hoy lo haces con JavaScript puro para entenderlo desde los cimientos.

Los datos mandan; la pantalla obedece

Dos formas de crear elementos

crear.js
// 1. createElement: preciso, seguro, un poco verboso
const li = document.createElement("li");
li.className = "tarea";
li.textContent = "Estudiar";      // textContent: seguro con cualquier texto
contenedor.appendChild(li);

// 2. innerHTML con plantilla de texto: rápido para bloques enteros
contenedor.innerHTML = `
<li class="tarea">Estudiar</li>
<li class="tarea">Practicar</li>
`;

createElement construye nodo a nodo (más control, más seguro); innerHTML reemplaza el interior de golpe con una plantilla de texto (más rápido de escribir para listas enteras). Para render de datos, innerHTML con .map().join("") es el patrón cómodo — con una advertencia importante que viene abajo.

El patrón render(): datos → HTML

Escribe en el filtro: la lista se regenera desde el array en cada tecla. Lo importante es lo que NO hicimos — nunca ocultamos ni borramos tarjetas a mano. Filtramos los DATOS y volvimos a renderizar. Los datos son la verdad; la pantalla es su reflejo. Este bucle "cambia datos → re-renderiza" es, literalmente, la idea que React industrializó.

La advertencia: innerHTML y seguridad

Para mostrar una lista de comentarios que escriben los usuarios, ¿cómo insertas el texto de cada comentario de forma segura?

Mini-reto

Convierte "El Observador" en data-driven: mueve sus noticias a un array de objetos ({ titulo, categoria, resumen }) y escribe un render() que genere las tarjetas. Luego agrega botones de categoría (Ambiente, Ciudad, Cultura) que filtren re-renderizando. Cuando lo tengas, cambia un dato del array y observa cómo la página se actualiza sin que toques el HTML: acabas de separar datos de presentación, la idea más importante del desarrollo de interfaces.

Qué sigue

Sabes reaccionar a clics y a escritura. Falta reaccionar al SCROLL de forma eficiente: revelar elementos al entrar en pantalla, cargar imágenes solo cuando se ven, cambiar el navbar. La próxima lección trae la herramienta perfecta para eso —IntersectionObserver— el mejor amigo del maquetador.