React Router

 La aplicación Create React no incluye el enrutamiento de páginas.

React Router es la solución más popular.

Agregar enrutador reaccionar

Para agregar React Router en su aplicación, ejecute esto en la terminal desde el directorio raíz de la aplicación:

npm i -D react-router-dom

Nota: Este tutorial utiliza React Router v6.Si está actualizando desde la versión 5, deberá utilizar la marca @latest:

npm i -D react-router-dom@latest

Estructura de carpetas

Para crear una aplicación con múltiples rutas de páginas, primero comencemos con la estructura del archivo.

Dentro de la srccarpeta, crearemos una carpeta nombrada pagescon varios archivos:

src\pages\:

  • Layout.js
  • Home.js
  • Blogs.js
  • Contact.js
  • NoPage.js
Cada archivo contendrá un componente React muy básico.

Uso básico

Ahora usaremos nuestro enrutador en nuestro index.jsarchivo.

Utilice React Router para enrutar a páginas según la URL:


import ReactDOM from "react-dom/client";
import { BrowserRouter, Routes, Route } from "react-router-dom";
import Layout from "./pages/Layout";
import Home from "./pages/Home";
import Blogs from "./pages/Blogs";
import Contact from "./pages/Contact";
import NoPage from "./pages/NoPage";

export default function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Layout />}>
          <Route index element={<Home />} />
          <Route path="blogs" element={<Blogs />} />
          <Route path="contact" element={<Contact />} />
          <Route path="*" element={<NoPage />} />
        </Route>
      </Routes>
    </BrowserRouter>
  );
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);


Ejemplo explicado

Primero envolvemos nuestro contenido con <BrowserRouter>.

Luego definimos nuestro <Routes>. Una aplicación puede tener múltiples <Routes>. Nuestro ejemplo básico solo usa uno.

<Route>s se pueden anidar. El primero <Route>tiene una ruta / y representa el Layoutcomponente.

Los s anidados <Route>heredan y agregan a la ruta principal. Entonces la blogsruta se combina con la ruta principal y se convierte en /blogs.

La Homeruta del componente no tiene una ruta pero tiene un indexatributo. Eso especifica esta ruta como la ruta predeterminada para la ruta principal, que es /.

Configurar el patha *actuará como un comodín para cualquier URL no definida. Esto es genial para una página de error 404.

Páginas / Componentes

El Layoutcomponente tiene <Outlet>y <Link>elementos.

Representa <Outlet>la ruta actual seleccionada.

<Link>se utiliza para configurar la URL y realizar un seguimiento del historial de navegación.

Cada vez que nos vinculemos a una ruta interna, usaremos <Link> en lugar de <a href="">.

La "ruta de diseño" es un componente compartido que inserta contenido común en todas las páginas, como un menú de navegación.


Layout.js:
import { Outlet, Link } from "react-router-dom";

const Layout = () => {
  return (
    <>
      <nav>
        <ul>
          <li>
            <Link to="/">Home</Link>
          </li>
          <li>
            <Link to="/blogs">Blogs</Link>
          </li>
          <li>
            <Link to="/contact">Contact</Link>
          </li>
        </ul>
      </nav>

      <Outlet />
    </>
  )
};

export default Layout;

Home.js:

const Home = () => {
  return <h1>Home</h1>;
};

export default Home;

Blogs.js:

const Blogs = () => {
  return <h1>Blog Articles</h1>;
};

export default Blogs;

Contact.js:

const Contact = () => {
  return <h1>Contact Me</h1>;
};

export default Contact;

NoPage.js:

const NoPage = () => {
  return <h1>404</h1>;
};

export default NoPage;

Comentarios

Entradas populares de este blog

API Web Crypto,

React Events

firmas digitales integradas en PDFs