Bienvenido a la versión React de GameCodes. Este proyecto fue migrado desde HTML/CSS/JS tradicional (Vanilla) hacia una arquitectura moderna basada en componentes con React y Vite.
Si es la primera vez que clonas o descargas este repositorio, necesitas instalar las dependencias (librerías) que usa React para funcionar. Sigue estos sencillos pasos:
- Abre una terminal (PowerShell, CMD o la terminal integrada de VS Code) y asegúrate de estar dentro de la carpeta
gamecodes-react. - Instala las dependencias:
(Esto creará una carpeta
npm install
node_modulescon todas las librerías necesarias). - Inicia el servidor de desarrollo:
npm run dev
- Verás que la terminal te da un enlace local (usualmente
http://localhost:5173). Haz Ctrl+Clic o cópialo en tu navegador web. ¡Listo! La página está corriendo.
Si necesitas explicar el código para una evaluación, aquí tienes los conceptos fundamentales de esta migración:
A diferencia de HTML5, donde todo estaba en un solo archivo gigante (index.html), en React dividimos la página en piezas pequeñas llamadas Componentes (archivos .jsx).
- Ejemplos:
<Header />,<Banner />,<Registro />. - Ventaja: El código es mucho más limpio, reutilizable y fácil de leer. Todo se junta finalmente en el orquestador principal:
App.jsx.
En HTML5, ir a la página de "Registro" significaba destruir el DOM y pedirle al servidor descargar registro.html.
En este proyecto usamos React Router (<BrowserRouter>, <Routes>).
- Ventaja: Ahora el
<Header />y el<Footer />nunca desaparecen. Cuando vas a/registro, React simplemente oculta el componente de inicio y muestra el formulario de registro en milisegundos, sin recargar la página ("Single Page Application").
En HTML5, para saber qué escribía el usuario usabas document.getElementById('correo').value.
En React usamos useState.
- Ventaja: React conecta el teclado del usuario directamente a una variable de estado (con el atributo
value={estado}y el eventoonChange). Si cambia el estado, React automáticamente actualiza la interfaz sin que tengamos que modificar el DOM a mano.
¿Cómo se comunica la página principal (App.jsx) con el botón superior de "Cerrar Sesión" (Header.jsx)?
- A través de
props(propiedades).App.jsxle "presta" la función de cerrar sesión al Header enviándosela como propiedad:<Header onLogout={handleLogout} />.
Tip para la evaluación: Te recomiendo abrir los archivos
src/App.jsxysrc/components/Login.jsx. Ambos tienen comentarios súper explicativos ("acordeones de notas") que muestran la comparación exacta entre cómo se hacía antes en HTML y cómo se hace ahora en React.