En este articulo veremos como usar react routes.
Para poder comprender este articulo necesitas saber react básico.
Que es react router
Es una librería que nos ayudara a generar una navegación en nuestra pagina o proyecto, mas fácil e mas dinámica, ya que ademas de facilitar el movimiento, también podremos disminuir los tiempos de carga.
Instalación
Para poder usarlo, en nuestro proyecto escribiremos el comando 'npm install react-router-dom'. Por si hay dudas, es necesario ya tener el proyecto creado y tener instalado npm o node.js.
1. Crear la ruta mayor
Crearemos un archivo el cual sera quien maneje todas las rutas posibles en nuestro proyecto.
Preferiblemente crearemos una nueva carpeta llamada routes, y crearemos el archivo .jsx.
2. Código
Para el código sera así:
El import, trae dos métodos importantes.
El cual usamos uno en la variable rutas, es 'createBrowserRouter' es donde crearemos las rutas y que se mostrara en ellas.
2.1 Rutas
Para crear una ruta seguiremos el siguiente código:
Como vemos, se crea un objeto el cual tiene:
path: es la ruta del navegador, como: "pagina-ejemplo/monitos"; entonces, la primera pagina es el home o la landing page, la cual por buenas practicas usaremos: "/". Si queremos agregar otra pagina: "/perfil".
element: es lo que se mostrará, en el ejemplo mostraremos el objeto Home, estos objetos se deberán importar, preferiblemente, de la carpeta de las paginas. Así:
import Home from '../views/Home';
errorElement: sabemos, que las paginas siempre tienen una del error 404, la cual es cuando no existe una pagina que el usuario busque, entonces esta parte es para agregar ese elemento importado.
2.2 Función
Crearemos una función la cual devolverá el objeto de las rutas. Luego la exportamos:
2.3 Uso de las rutas
Para poder usar las rutas vamos a nuestro archivo App y quitamos todo y solo importamos nuestro archivo de rutas, así:
2.4 Mejora de carga
Han visto, por ejemplo, en la pagina de la documentación de mozilla, que parece que lo único que cambia es el contenido... Y la navegación no se actualiza... En cambio otras paginas recargan toda la pagina... Esto se puede lograr usando un nuevo atributo en el objeto de ruta:
En el nuevo atributo children, crearemos una lista de objetos, los cuales serán rutas normales, les agregaremos la ruta y su respectivo elemento. Y así evitamos recargar toda la pagina y solo lo hacemos con el elemento que si cambiara.
Pero entonces para poder mostrar esos elementos de manera automatica, usaremos un nuevo objeto importable, asi:
El elemento importable 'outlet' sera el cual mostrara los elementos hijos, como en el ejemplo, mostrara: (según la ruta del navegador)
En la ruta "/navegacion/ejemplo-1" saldrá el elemento <Eje1/> y así con el otro ejemplo.
2.5 Envió de datos
En ciertas ocasiones, por ejemplo, queremos mostrar un elemento especifico, pero este elemento es dinámico, para ello crearemos una variable dentro de la ruta. Así:
El ':id' es la variable que tendremos que pasar. Por ejemplo, en el elemento a ser clickeado se activara esta función:
La cual nos lleva a la pagina detalle. Si detallamos, veremos una variable 'navigate', esta usa un hook de react router, el cual es un método al que debemos pasar una ruta existente, con la posibilidad de agregar variables (como esa en el código). Para poder usar esta variable, en el ejemplo: