Saltearse al contenido

RouterProvider

RouterProvider controla la ruta activa, el matching y la navegación.

PropTipoDescripción
routesRoute[]Rutas declaradas de la app
basenamestringPrefijo base cuando la app vive en subruta
notFoundReactNodeFallback cuando no hay match
childrenReactNodeFallback alternativo (si no usa notFound)
layoutComponentType<{ children: ReactNode }>Layout global opcional
  • basename aplica un prefijo base para resolver rutas internas (/app, /admin, etc.).
  • Si no hay coincidencia de ruta:
    • usa notFound si está definido;
    • de lo contrario usa children como fallback.
  • El matching evalúa rutas en orden; coloque rutas más específicas antes de comodines.

Admite:

  • Rutas estáticas: /about
  • Parámetros: /users/:id
  • Wildcard final: /docs/*
import { RouterProvider } from '@arielgonzaguer/michi-router/core';
const routes = [
{ path: '/', component: <Home /> },
{ path: '/users/:id', component: <UserPage /> },
{ path: '/docs/*', component: <Docs /> }
];
function MainLayout({ children }: { children: React.ReactNode }) {
return (
<div>
<header>Header</header>
<main>{children}</main>
</div>
);
}
export default function App() {
return (
<RouterProvider
basename="/app"
routes={routes}
layout={MainLayout}
notFound={<h1>404</h1>}
/>
);
}