Guía - React Router I
Guía - React Router I
La siguiente guía de estudio tiene como objetivo recordar y repasar los contenidos que
hemos visto en clase y dentro de los cuales se encuentran:
_ 1
www.desafiolatam.com
Tabla de contenidos
La navegación en una página estática 2
¿Qué es React Router? 3
Setup 4
Mi primer enrutador 5
¡Manos a la obra! - Navbar enrutado 8
Creación de vistas 8
¡Manos a la obra! - Vistas Registro y Login 9
Creación de vistas 11
¿Qué es una SPA? 11
Preguntas de cierre 13
¡Comencemos!
_ 2
www.desafiolatam.com
La navegación en una página estática
Cuando navegamos en la web, por ejemplo, haciendo clic en un link dentro de un sitio,
podemos ver que la URL mostrada en el navegador cambia.
Lo anterior sucede en muchos sitios web, especialmente en aquellos sitios web estáticos,
como los que hemos hecho solo con HTML y CSS. En estos sitios, cada uno de estos
archivos tiene una dirección web que coincide con el nombre del archivo.
Por ejemplo:
● Si tenemos la página blog.html en la raíz de un proyecto con un dominio llamado
ejemplo.com, la URL de la página será: ejemplo.com/blog.html
● Si tenemos la página blog.html en la sub carpeta páginas, la URL será:
ejemplo.com/paginas/blog.html
Si quisiéramos una segunda dirección dentro del proyecto, tendríamos que crear una
segunda página similar a index. Pero de esta forma, al movernos de una página a la otra,
tendría que volver a cargar todos los componentes, haciendo el sitio más lento, sin embargo,
hay otra opción mejor, usar un sistema de enrutamiento como react-router.
_ 3
www.desafiolatam.com
¿Qué es React Router?
Con React Router podemos gestionar diferentes rutas enlazadas a diferentes vistas,
mejorando de esta manera la usabilidad de nuestra aplicación y la experiencia de nuestros
usuarios.
Setup
En esta unidad trabajaremos sobre un proyecto base llamado Dogstel que consiste en una
página web de un hotel para perros.
_ 4
www.desafiolatam.com
Abre una página nueva en tu navegador y escribe en la URL localhost:5173. Al cargar la
página deberíamos ver un navbar con el texto Dogstel.
_ 5
www.desafiolatam.com
El objetivo será agregar react router al proyecto con los componentes que ya tenemos a
disposición.
Mi primer enrutador
Luego modifica el código del componente main.jsx para importar y agregar el componente
BrowserRouter del paquete react-router-dom y el componente Navbar.
/* main.jsx */
import "bootstrap/dist/css/bootstrap.min.css";
import "./index.css";
ReactDOM.createRoot(document.getElementById("root")).render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>
_ 6
www.desafiolatam.com
);
Ahora, dentro del componente Navigation.jsx incluido en el proyecto, agrega 2 Links: Home y
Planes
/* components/Navigation.jsx */
_ 7
www.desafiolatam.com
Imagen 6. URL cambiada al consultar una ruta
Fuente: Desafío Latam
Con este redireccionamiento evitamos tener que volver a consumir todos los recursos de
nuestra aplicación al evitar que se recargue el navegador. React Router se encargará de
actualizar parcialmente el DOM en función a la ruta que consultemos.
3. Crea un componente Navbar con 2 componentes Links que dirijan a Registro y Login.
_ 8
www.desafiolatam.com
Creación de vistas
Ahora que nuestra aplicación puede redireccionar al usuario a diferentes rutas, es momento
de definir en nuestro enrutador cuáles son los componentes que utilizará como vistas.
Para esto modifica el archivo App agregando los componentes Routes, Route y las 2 vistas
incluidas en el proyecto.
/* App.jsx */
El componente Route define una ruta dentro de nuestro enrutador y tiene la siguiente
estructura:
En donde el atributo path define la ruta y el atributo element el componente que se mostrará
cuando coincida el path con la URL del navegador.
_ 9
www.desafiolatam.com
Ahora probemos nuevamente nuestra aplicación y comprobemos que se muestran ambas
vistas en ambas rutas:
Creación de vistas
La ruta por defecto nos ayudará a poder personalizar y devolver una vista en caso de que el
usuario consulte nuestra página web con una URL que no coincida con ninguna de nuestras
rutas.
Para agregar la ruta por defecto incluye la vista NotFound que sea utilizado por un Route
nuevo que tenga como path un asterisco: *
<Routes>
<Route
path="/"
element={<HomePage />}
/>
<Route
path="/planes"
element={<PlansPage />}
/>
<Route
_ 10
www.desafiolatam.com
path="*"
element={<NotFound />}
/>
</Routes>
Ahora, si consultamos nuestra aplicación con una ruta extraña o que simplemente no
coincida con ningún componente Route, obtenemos la vista NotFound:
Una Single Page Application (SPA) es una aplicación que ofrece la navegación de su
contenido basada en rutas dentro de una misma página web sin que esta se tenga que
recargar.
Se dice que es de “Una sola página” puesto que toda la aplicación se carga dentro de un
HTML final.
_ 11
www.desafiolatam.com
Preguntas de cierre
Reflexiona:
_ 12
www.desafiolatam.com