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.

Antes de empezar
Asegúrate de tener tu panel abierto - necesitarás las credenciales de Git que se muestran allí. Esta plantilla incluye React 18, Tailwind CSS, Redux Toolkit y React Router.

Inicio rápido

1

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".

2

Clona tu repositorio

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Instala las dependencias

npm install
4

Inicia el servidor de desarrollo

npm start

Abre http://localhost:3000 en tu navegador.

5

Compila y haz push

npm run build
git add .
git commit -m "Initial setup"
git push origin main
Cada push a Git despliega tu aplicación automáticamente. Consulta tu URL de trabajo del módulo en el panel para ver tu sitio en vivo.

Desarrollo local con Docker

Si no tienes Node.js instalado localmente, puedes usar Docker para ejecutar comandos de React.

¿Qué es Docker?
Docker crea "contenedores" aislados con todo el software que necesitas (Node.js, npm) sin instalarlo en tu ordenador. Piénsalo como una máquina virtual ligera.

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
Nota
Docker es opcional para el desarrollo local. La plataforma NStrim gestiona el despliegue automáticamente: solo necesitas Docker si quieres ejecutar comandos localmente sin tener Node.js instalado.

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:

Cambio de código git push npm run build Despliegue de archivos estáticos ¡En vivo!

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

Para más información, visita la documentación oficial de React.