React
Descripción general
React es una biblioteca de JavaScript para crear interfaces de usuario. Esta plantilla utiliza Create React App (CRA), que ofrece una configuración cómoda para aprender React y una base sólida para aplicaciones de página única.
Inicio rápido
Crear repositorio desde plantilla
En tu panel, ve a la pestaña Tools & Deployment. Haz clic en el botón "New Repository", selecciona la plantilla de React del menú desplegable, introduce un nombre de repositorio y un subdominio, y luego haz clic en "Create Repository".
Clona tu repositorio
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Instala las dependencias
npm install
Inicia el servidor de desarrollo
npm start
Abre http://localhost:3000 en tu navegador.
Compila y haz push
npm run build
git add .
git commit -m "Initial setup"
git push origin main
Desarrollo local con Docker
Si no tienes Node.js instalado localmente, puedes usar Docker para ejecutar comandos de React.
Requisitos previos
Instala Docker Desktop para tu sistema operativo (Windows, Mac o Linux).
Ejecutar comandos con Docker
# Run npm install
docker run --rm -v $(pwd):/app -w /app node:18 npm install
# Run development server (accessible at localhost:3000)
docker run --rm -v $(pwd):/app -w /app -p 3000:3000 node:18 npm start
# Build for production
docker run --rm -v $(pwd):/app -w /app node:18 npm run build
Estructura del proyecto
Entender dónde se ubican los archivos:
├── src/
│ ├── components/ # Componentes React
│ ├── hooks/ # Hooks personalizados
│ ├── pages/ # Componentes de página
│ ├── services/ # Servicios de API
│ ├── store/ # Configuración del store Redux
│ ├── App.js # Componente raíz
│ ├── App.css # Estilos de la app
│ └── index.js # Punto de entrada de la aplicación
├── public/ # Archivos estáticos
├── package.json # Dependencias y scripts
├── tailwind.config.js # Configuración de Tailwind CSS
└── Dockerfile # Configuración de build Docker
Tareas comunes
Crear un componente
Crea archivos .js en src/components/:
// src/components/Button.js
export default function Button({ label, onClick }) {
return (
<button
className="bg-blue-500 text-white px-4 py-2 rounded"
onClick={onClick}
>
{label}
</button>
);
}
Usar React Hooks
Hooks comunes para estado y efectos:
import { useState, useEffect } from 'react';
function Counter() {
const [count, setCount] = useState(0);
useEffect(() => {
document.title = `Count: ${count}`;
}, [count]);
return (
<button onClick={() => setCount(count + 1)}>
Count: {count}
</button>
);
}
Usar React Router
React Router viene preconfigurado para la navegación:
import { BrowserRouter, Routes, Route, Link } from 'react-router-dom';
import Home from './pages/Home';
import About from './pages/About';
function App() {
return (
<BrowserRouter>
<nav>
<Link to="/">Home</Link>
<Link to="/about">About</Link>
</nav>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
</Routes>
</BrowserRouter>
);
}
Usar Tailwind CSS
Tailwind CSS viene preconfigurado. Usa las clases directamente en tu JSX:
<div className="bg-blue-500 text-white p-4 rounded-lg">
Hello Tailwind!
</div>
Comandos útiles
npm start
Iniciar el servidor de desarrollo (puerto 3000)
npm run build
Crear build de producción optimizado
npm test
Ejecutar el conjunto de tests
npm run eject
Hacer eject de CRA (operación irreversible)
Resolución de problemas
npm install falla con errores de permisos
Causa: Problemas de permisos con la caché de npm o node_modules.
Solución: Elimina la carpeta node_modules y el archivo package-lock.json, y luego ejecuta npm install de nuevo.
El puerto 3000 ya está en uso
Causa: Otro proceso está usando el puerto 3000.
Solución: Define otro puerto: PORT=3001 npm start o detén el otro proceso.
El componente no se vuelve a renderizar
Causa: Mutación del estado en lugar de crear un nuevo estado.
Solución: Crea siempre objetos/arrays nuevos al actualizar el estado. Usa el operador spread: setItems([...items, newItem])
Los cambios no se reflejan en el navegador
Causa: Caché del navegador o hot reload no funciona.
Solución: Recarga forzada (Ctrl+Shift+R o Cmd+Shift+R) o reinicia el servidor de desarrollo.
El build falla tras el despliegue
Causa: Errores de compilación o dependencias faltantes.
Solución: Ejecuta npm run build localmente primero para comprobar errores antes de hacer push.
Flujo de despliegue
Cada vez que haces push de tu código a Git, tu aplicación se compila y despliega automáticamente:
La URL de tu aplicación desplegada sigue este formato:
https://<your-subdomain>-<repo-name>.<session-domain>
Ejemplo: https://student01-module-a.demo.nstrim.app