Que es router en React?

Debido a que React es de tipo SPA(single page application), no recarga la página cuando cambiamos de url. Sin embargo, router nos ayuda a crear otra página para poder navegar en nuestra aplicación. Imagina twitter web, cuando das click en un tweet, se abre otra sección donde puedes ver el tweet. Sería un problema que al momento de darle click, no cambie la url, por lo que ese tweet no tiene dirección propia, no se guardaría en tu historial y sería un problema el SEO.  Para ello, usamos router, que se encargará de administrar esta situación, donde en el momento que abras el tweet, cambie la URL, pero todavía mantenga ese dinamismo y rapidez de una SPA.

Instalación

#para instalar 
npm install react-router-dom

Importación

//import en App.jsx
import { BrowserRouter, Routes, Route } from 'react-router-dom';

ReactRouterDOM

Te permite implementar enrutado dinámico en la aplicación. Nos facilita pues podemos enrutar nuestra app basada en componentes de la app (como login o recoverypassword).

//ejemplo de uso
const App = () => {
    return (
        <BrowserRouter>
            <Layout>
                <Routes>
                    <Route exact path="/" element={<Home />} />
                    <Route exact path="/login" element={<Login />} />			
                    <Route exact path="/recovery-password" element={<RecoveryPassword />} />
                    <Route path="*" element={<NotFound />} />
                </Routes>
            </Layout>
        </BrowserRouter>

    );
}

¿Qué estamos haciendo?

BrowserRoute sirve para implementar router en el navegador

Layout solamente renderizará el route que coincida efectivamente con la URL especificada.

Conceptos

https://johnserrano.co/blog/aprende-a-crear-rutas-con-react-router