Enrutamiento con React Router DOM
Clase 4 de 31 • Curso de React.js con Vite.js y TailwindCSS
Contenido del curso
Clase 4 de 31 • Curso de React.js con Vite.js y TailwindCSS
Contenido del curso
Carlos Vera
Lucas Frazzetta
Edwin Gustavo Rozo Gómez
Aaron Yamil Luna Parrado
Eduard Barrios
JOSE FABIAN BONILLA GUZMAN
Remix Zapata
Bryan Enrique Garay Benavidez
Rubén Ernesto Aragón Gil
Juan Mercado
Wilfredo Pinto
Vladimir Farrera Vera
Juan Carlos Montilla Sánchez
Isaac Hernandez Resendiz
Uber Cardoso
Miguel Angel Reyes Moreno
Andres Felipe Camacho Rodriguez
Fernando Orozco Velasquez
Carlos Andres Alavez Santiago
thenine xl
Juan Camilo Guerrero González
Vladimir Farrera Vera
Juan Pablo García Chávez
Carlos Andres Castaño
Christian Marin
Arlen
No conocía esa forma usando el hook, lo hacía a la antigua de usar el browser router y sus childs serían routes y route por cada ruta, fue interesante
Yo tampoco lo conocía!! :)
Se ve chévere, pero no entiendo si es que mejora el performance o qué mejora de este modo.
Que sencillo lo explica, react-router-dom anotado, directo al CV 😂
Pequeño aporte de un error que cometí. escribiendo el codigo puse
const appRoutes
esto no funciona porque para el uso de los Hooks la función SIEMPRE debe comenzar con mayuscula, debe ser:
const AppRoutes
xD una vez me paso y ahi aprendi :v
Con el glorioso TypeScript, no pasan estas cosas. :v
Hola comunidad les comparto unos pequeños apuntes en Notion, espero les sean de utilidad. Link aquí:
Comando para instalar react rout
npm install react-router-dom
Decir que react-router dom tiene diferentes tipos de providers o routers: BrowserRouter: nos direcciona a las rutas sin la necesidad de un hash "/rute",cuando tenemos acceso total al servidor HashRouter: agrega un hash a nuestras rutas "#/rute", cuando no tenemos un acceso total al backend MemoryRouter:almacena sus ubicaciones internamente en una matriz, para cuando queremos tener un mejor manejo del historial de nuestra app NativeRouter: para reactNative o apps mobiles
Estos son los que inyecta codigo para que puedamos hacer redirecciones, crear rutas,etc
Personalmente me gusto esta clase, para poder darle en mi opinion una mejor organizacion separe todo en dos archivos, cree una carpeta Routes/index.jsx en donde estara mi componente que define las rutas
import Home from '../pages/Home'; import MyAccount from '../pages/MyAccount'; import MyOrder from '../pages/MyOrder'; import MyOrders from '../pages/MyOrders'; import NotFound from '../pages/NotFound'; import SignIn from '../pages/SignIn'; import {useRoutes} from 'react-router-dom'; const AppRoutes = ()=>{ let routes = useRoutes([ {path: '/',element: <Home/>}, {path:'/my-order',element: <MyOrder/>}, {path:'/my-account',element: <MyAccount/>}, {path:'/my-orders',element: <MyOrders/>}, {path:'/singin',element: <SignIn/>}, {path:'/*',element: <NotFound/>}, ]); return routes; }; export default AppRoutes;
Por otro lado mi componente app quedo un poco mas limpio y un poco mas facil de leer en mi opinion, se ve asi
import {BrowserRouter} from 'react-router-dom'; import AppRoutes from '../../Routes'; import './App.css'; function App() { return ( <BrowserRouter> <AppRoutes/> </BrowserRouter> ) } export default App
como se tipa?? con tyscript
Por buena práctica, se recomienda colocar las páginas que no existen al final, ya que hay algúnos lenguajes de backend que son monohilos y son secuenciales, por ende, si anteriormente tenemos una ruta (*) no va a pasar a la siguiente (/signin)
Dato curioso jejeje
Puntos clave de la clase:
Instalar react router dom: npm install react-router-dom
Importar react-router-dom en componente App :
import { useRouters } from 'react-router-dom'
const AppRoutes = () => { let routes = useRoutes([ { path: '/', element: <Home /> }, { path: '/my-account', element :<MyAccount/>}, ]) }
Nota: tienes que agregar las demas rutas, no olvides que el path de NotFound es '/*' 4. Tu función app, debe de quedar así:
const App = () => { return( <BrowserRouter> <AppRoutes /> </BrowserRouter> ) }
Verificar que VSCode halla importado BrowserRouter, de no ser así, toca hacerlo manualmente. Saludos platzi nautas.
Es impresion mia o al 2024 , este material ya esta viejo?, hay maneras mas simples de hacr lo mismo?
¿No sería mejor poner el 'Not found' hasta abajo? Creo que estas rutas se manejan como un if else y si no entra en ninguna entonces mandamos el error 404
let routes = useRoutes([ { path: '/', element: <Home />, }, { path: '/my-account', element: <MyAccount />, }, { path: '/my-order/:id', element: <MyOrder />, }, { path: '/my-orders', element: <MyOrders />, }, { path: '/sign-in', element: <SignIn />, }, { path: '/*', element: <NotFound />, } ])
Con la teacher aprendi a ser mas organizado hay voy 🤣🤣🤣🤣🤣🤣 Me gustaría sacarle el # celular esta linda Estefany Aguilar ayayai
No lo haga compa...
Al instalar npm install react-router-dom me salieron un monton de errores que no me dejaba instalarlo hice lo siguiente:
rm -rf node_modules rm -f package-lock.json rm -f yarn.lock npm cache clean --force
Y volver a instalar los paquetes npm install
Ya despues si me pudo instalar correctamente.
Gracias. Yo también sufrí errores de ERESOLVE de incompatibilidad de algunas dependencias. Tu solución ha ido perfecta y puedo continuar el curso sin mayores problemas.
Hola, si quisiera bloquear una ruta del router para que no se ejecute si el usuario no tiene una sesion activa
Mas que intento no funciona con Next JS,
todas las rutas son esa

¿El enrutamiento podría ser desde un componente y tener su propia carpeta y así no llenar tanto el índex de App?
import { useRoutes } from "react-router-dom"; import Home from "../../Pages/Home"; import MyAccount from "../../Pages/MyAccount"; import MyOrder from "../../Pages/MyOrder"; import MyOrders from "../../Pages/MyOrders"; import NotFound from "../../Pages/NotFound"; import SignIn from "../../Pages/SignIn"; const AppRoutes = () => { const routes = useRoutes([ { path: "/", element: <Home />, }, { path: "/account", element: <MyAccount />, }, { path: "/myorder", element: <MyOrder />, }, { path: "/orderes", element: <MyOrders />, }, { path: "/signin", element: <SignIn />, }, { path: "/*", element: <NotFound />, }, ]); return routes; }; export default AppRoutes; ```Una buena forma de tener un código mas limpio puede ser crear este componente y luego importarlo en App de la siguiente manera ```js import { BrowserRouter } from "react-router-dom"; import AppRoutes from "../../Components/Routes/Routes"; import "./Index.css"; function App() { return ( <BrowserRouter> <AppRoutes /> </BrowserRouter> ); } export default App;
Que ventaja o desventaja tiene utilizar el hook useRoutes antes de usar createBrowserRouter?
En el caso de que una ruta tuviera una ruta hija, còmo serìa el còdigo en el App Component?