React Router desde cero: rutas base en una SPA

Configura navegación cliente en React con React Router y entiende la diferencia real entre enlaces SPA y recarga completa del navegador.

Una SPA necesita navegar entre vistas sin recargar toda la página, manteniendo estado de aplicación y experiencia fluida.

React Router resuelve esto mapeando rutas a componentes y gestionando historial con la API del navegador.

La diferencia clave frente a etiquetas `<a>` tradicionales es que los `Link` de React Router evitan refresh completo.

Con una base sólida de routing podrás escalar hacia rutas dinámicas, layouts anidados y protección por permisos.

  • Cada ruta representa un estado navegable de la app.
  • Piensa cada pantalla como una ruta estable: `/`, `/productos`, `/contacto`.
  • El router decide qué componente renderizar según la URL actual.
  • Este modelo mejora claridad arquitectónica en apps con muchas vistas.
  • Define router y provider en la entrada de la aplicación.

Concepto base: URL -> componente

Cada ruta representa un estado navegable de la app.

Piensa cada pantalla como una ruta estable: `/`, `/productos`, `/contacto`.

El router decide qué componente renderizar según la URL actual.

Este modelo mejora claridad arquitectónica en apps con muchas vistas.

Setup mínimo recomendado

Define router y provider en la entrada de la aplicación.

Navegación con Link

Usa `Link` para moverte sin recargar el documento completo.

`Link` actualiza la URL y renderiza la vista objetivo manteniendo contexto de la SPA.

Con `<a href>` provocarías navegación tradicional con recarga completa.

En productos reales esto impacta percepción de velocidad y continuidad de flujo.

React
15

React Router desde cero: rutas base en una SPA

Configura navegación cliente en React con React Router y entiende la diferencia real entre enlaces SPA y recarga completa del navegador.

Código del tema: <Route path="/dashboard" element={<Dashboard />} />

📘 Teoría

Concepto base: URL -> componente

Cada ruta representa un estado navegable de la app.

1

Piensa cada pantalla como una ruta estable: `/`, `/productos`, `/contacto`.

2

El router decide qué componente renderizar según la URL actual.

3

Este modelo mejora claridad arquitectónica en apps con muchas vistas.

Setup mínimo recomendado

Define router y provider en la entrada de la aplicación.

Router básico con tres páginas
import { createBrowserRouter, RouterProvider } from 'react-router-dom';

function Home() { return <h1>Inicio</h1>; }
function About() { return <h1>Sobre nosotros</h1>; }
function Contact() { return <h1>Contacto</h1>; }

const router = createBrowserRouter([
  { path: '/', element: <Home /> },
  { path: '/about', element: <About /> },
  { path: '/contact', element: <Contact /> }
]);

function AppRouter() {
  return <RouterProvider router={router} />;
}

🧪 Aprende probando

Ejemplo Ejemplo: menú de navegación en SPA Navegación básica entre rutas con `Link`.

🏁 Retos

Reto Reto: añade una ruta `/blog` Completa la configuración para incluir la pantalla Blog.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre React.

Test de React

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .