# React Router ## Docs - [Code Splitting](https://mintlify.wiki/remix-run/react-router/advanced/code-splitting.md): Optimize your bundle size with automatic and manual code splitting - [Concurrency Patterns](https://mintlify.wiki/remix-run/react-router/advanced/concurrency.md): Handle multiple simultaneous requests efficiently - [Custom Data Strategies](https://mintlify.wiki/remix-run/react-router/advanced/data-strategy.md): Customize how React Router loads data with the dataStrategy API - [Hot Module Replacement](https://mintlify.wiki/remix-run/react-router/advanced/hmr.md): Fast refresh for routes during development - [Hydration Strategies](https://mintlify.wiki/remix-run/react-router/advanced/hydration.md): Control how your app hydrates from server-rendered HTML - [Instrumentation API](https://mintlify.wiki/remix-run/react-router/advanced/instrumentation.md): Observe and measure application performance - [Lazy Route Discovery](https://mintlify.wiki/remix-run/react-router/advanced/lazy-route-discovery.md): Dynamically discover and load routes on demand - [Progressive Enhancement](https://mintlify.wiki/remix-run/react-router/advanced/progressive-enhancement.md): Build resilient apps that work without JavaScript - [Race Condition Handling](https://mintlify.wiki/remix-run/react-router/advanced/race-conditions.md): How React Router prevents common race conditions - [React Server Components (Experimental)](https://mintlify.wiki/remix-run/react-router/advanced/react-server-components.md): Use React Server Components with React Router - [Await](https://mintlify.wiki/remix-run/react-router/api/components/await.md) - [BrowserRouter](https://mintlify.wiki/remix-run/react-router/api/components/browser-router.md) - [Form](https://mintlify.wiki/remix-run/react-router/api/components/form.md) - [HashRouter](https://mintlify.wiki/remix-run/react-router/api/components/hash-router.md): API reference for the HashRouter component in React Router - [unstable_HistoryRouter](https://mintlify.wiki/remix-run/react-router/api/components/history-router.md): API reference for the unstable_HistoryRouter component in React Router - [Link](https://mintlify.wiki/remix-run/react-router/api/components/link.md) - [MemoryRouter](https://mintlify.wiki/remix-run/react-router/api/components/memory-router.md) - [NavLink](https://mintlify.wiki/remix-run/react-router/api/components/nav-link.md) - [Navigate](https://mintlify.wiki/remix-run/react-router/api/components/navigate.md) - [Outlet](https://mintlify.wiki/remix-run/react-router/api/components/outlet.md) - [Route](https://mintlify.wiki/remix-run/react-router/api/components/route.md) - [RouterProvider](https://mintlify.wiki/remix-run/react-router/api/components/router-provider.md) - [Routes](https://mintlify.wiki/remix-run/react-router/api/components/routes.md) - [ScrollRestoration](https://mintlify.wiki/remix-run/react-router/api/components/scroll-restoration.md) - [react-router.config.ts](https://mintlify.wiki/remix-run/react-router/api/config/react-router-config.md): Application configuration for React Router Framework Mode - [routes.ts](https://mintlify.wiki/remix-run/react-router/api/config/routes-config.md): Route configuration API for React Router Framework Mode - [useActionData](https://mintlify.wiki/remix-run/react-router/api/hooks/use-action-data.md) - [useAsyncError](https://mintlify.wiki/remix-run/react-router/api/hooks/use-async-error.md) - [useAsyncValue](https://mintlify.wiki/remix-run/react-router/api/hooks/use-async-value.md) - [useBeforeUnload](https://mintlify.wiki/remix-run/react-router/api/hooks/use-before-unload.md) - [useBlocker](https://mintlify.wiki/remix-run/react-router/api/hooks/use-blocker.md) - [useFetcher](https://mintlify.wiki/remix-run/react-router/api/hooks/use-fetcher.md) - [useFetchers](https://mintlify.wiki/remix-run/react-router/api/hooks/use-fetchers.md) - [useFormAction](https://mintlify.wiki/remix-run/react-router/api/hooks/use-form-action.md) - [useHref](https://mintlify.wiki/remix-run/react-router/api/hooks/use-href.md) - [useInRouterContext](https://mintlify.wiki/remix-run/react-router/api/hooks/use-in-router-context.md) - [useLoaderData](https://mintlify.wiki/remix-run/react-router/api/hooks/use-loader-data.md) - [useLocation](https://mintlify.wiki/remix-run/react-router/api/hooks/use-location.md) - [useMatches](https://mintlify.wiki/remix-run/react-router/api/hooks/use-matches.md) - [useNavigate](https://mintlify.wiki/remix-run/react-router/api/hooks/use-navigate.md) - [useNavigation](https://mintlify.wiki/remix-run/react-router/api/hooks/use-navigation.md) - [useNavigationType](https://mintlify.wiki/remix-run/react-router/api/hooks/use-navigation-type.md) - [useOutlet](https://mintlify.wiki/remix-run/react-router/api/hooks/use-outlet.md) - [useOutletContext](https://mintlify.wiki/remix-run/react-router/api/hooks/use-outlet-context.md) - [useParams](https://mintlify.wiki/remix-run/react-router/api/hooks/use-params.md) - [usePrompt](https://mintlify.wiki/remix-run/react-router/api/hooks/use-prompt.md) - [useResolvedPath](https://mintlify.wiki/remix-run/react-router/api/hooks/use-resolved-path.md) - [useRevalidator](https://mintlify.wiki/remix-run/react-router/api/hooks/use-revalidator.md) - [useRouteError](https://mintlify.wiki/remix-run/react-router/api/hooks/use-route-error.md) - [useRouteLoaderData](https://mintlify.wiki/remix-run/react-router/api/hooks/use-route-loader-data.md) - [useRoutes](https://mintlify.wiki/remix-run/react-router/api/hooks/use-routes.md) - [useScrollRestoration](https://mintlify.wiki/remix-run/react-router/api/hooks/use-scroll-restoration.md) - [useSearchParams](https://mintlify.wiki/remix-run/react-router/api/hooks/use-search-params.md) - [useSubmit](https://mintlify.wiki/remix-run/react-router/api/hooks/use-submit.md) - [useViewTransitionState](https://mintlify.wiki/remix-run/react-router/api/hooks/use-view-transition-state.md) - [action](https://mintlify.wiki/remix-run/react-router/api/route-module/action.md) - [clientAction](https://mintlify.wiki/remix-run/react-router/api/route-module/client-action.md) - [clientLoader](https://mintlify.wiki/remix-run/react-router/api/route-module/client-loader.md) - [default export](https://mintlify.wiki/remix-run/react-router/api/route-module/default.md) - [ErrorBoundary](https://mintlify.wiki/remix-run/react-router/api/route-module/error-boundary.md) - [handle](https://mintlify.wiki/remix-run/react-router/api/route-module/handle.md) - [headers](https://mintlify.wiki/remix-run/react-router/api/route-module/headers.md) - [links](https://mintlify.wiki/remix-run/react-router/api/route-module/links.md) - [loader](https://mintlify.wiki/remix-run/react-router/api/route-module/loader.md) - [meta](https://mintlify.wiki/remix-run/react-router/api/route-module/meta.md) - [shouldRevalidate](https://mintlify.wiki/remix-run/react-router/api/route-module/should-revalidate.md) - [createBrowserRouter](https://mintlify.wiki/remix-run/react-router/api/routers/create-browser-router.md) - [createHashRouter](https://mintlify.wiki/remix-run/react-router/api/routers/create-hash-router.md) - [createMemoryRouter](https://mintlify.wiki/remix-run/react-router/api/routers/create-memory-router.md) - [createCookie](https://mintlify.wiki/remix-run/react-router/api/server/create-cookie.md): Create a cookie container for managing browser cookies - [createCookieSessionStorage](https://mintlify.wiki/remix-run/react-router/api/server/create-cookie-session-storage.md): Store session data directly in browser cookies - [createMemorySessionStorage](https://mintlify.wiki/remix-run/react-router/api/server/create-memory-session-storage.md): In-memory session storage for testing and development - [createRequestHandler](https://mintlify.wiki/remix-run/react-router/api/server/create-request-handler.md): Create a request handler for server-side rendering - [createSessionStorage](https://mintlify.wiki/remix-run/react-router/api/server/create-session-storage.md): Create custom session storage with your own backend - [data](https://mintlify.wiki/remix-run/react-router/api/utils/data.md): Return data with custom headers and status codes from loaders and actions - [defer](https://mintlify.wiki/remix-run/react-router/api/utils/defer.md): Stream deferred data to the client (deprecated in v7) - [generatePath](https://mintlify.wiki/remix-run/react-router/api/utils/generate-path.md): Generate URL paths from patterns with parameters - [isRouteErrorResponse](https://mintlify.wiki/remix-run/react-router/api/utils/is-route-error-response.md): Type guard for route error responses - [json](https://mintlify.wiki/remix-run/react-router/api/utils/json.md): Return JSON responses from loaders and actions (deprecated in v7) - [matchPath](https://mintlify.wiki/remix-run/react-router/api/utils/match-path.md): Match a URL pathname against a path pattern - [matchRoutes](https://mintlify.wiki/remix-run/react-router/api/utils/match-routes.md): Match routes against a URL pathname - [redirect](https://mintlify.wiki/remix-run/react-router/api/utils/redirect.md): Create redirect responses in loaders and actions - [resolvePath](https://mintlify.wiki/remix-run/react-router/api/utils/resolve-path.md): Resolve relative paths to absolute paths - [cloudflareDevProxy](https://mintlify.wiki/remix-run/react-router/api/vite/cloudflare.md): Vite plugin for Cloudflare Workers development - [reactRouter](https://mintlify.wiki/remix-run/react-router/api/vite/react-router.md): React Router Vite plugin for Framework Mode - [Data Fetching Patterns](https://mintlify.wiki/remix-run/react-router/concepts/data-fetching.md) - [Error Boundaries](https://mintlify.wiki/remix-run/react-router/concepts/error-boundaries.md) - [Form Handling](https://mintlify.wiki/remix-run/react-router/concepts/form-handling.md) - [Loaders and Actions](https://mintlify.wiki/remix-run/react-router/concepts/loaders-and-actions.md) - [Navigation Concepts](https://mintlify.wiki/remix-run/react-router/concepts/navigation.md) - [Route Module API](https://mintlify.wiki/remix-run/react-router/concepts/route-modules.md) - [Core Routing Concepts](https://mintlify.wiki/remix-run/react-router/concepts/routing.md) - [Actions](https://mintlify.wiki/remix-run/react-router/data/actions.md) - [Client-Side Data](https://mintlify.wiki/remix-run/react-router/data/client-data.md) - [Fetchers](https://mintlify.wiki/remix-run/react-router/data/fetchers.md) - [Loaders](https://mintlify.wiki/remix-run/react-router/data/loaders.md) - [Optimistic UI](https://mintlify.wiki/remix-run/react-router/data/optimistic-ui.md) - [Resource Routes](https://mintlify.wiki/remix-run/react-router/data/resource-routes.md) - [Revalidation](https://mintlify.wiki/remix-run/react-router/data/revalidation.md) - [Cloudflare Deployment](https://mintlify.wiki/remix-run/react-router/deployment/cloudflare.md): Deploy React Router applications to Cloudflare Pages and Workers - [Custom Server Setup](https://mintlify.wiki/remix-run/react-router/deployment/custom-server.md): Create custom server configurations for React Router - [Express Integration](https://mintlify.wiki/remix-run/react-router/deployment/express.md): Integrate React Router with Express.js applications - [Node.js Deployment](https://mintlify.wiki/remix-run/react-router/deployment/node.md): Deploy React Router applications to Node.js servers - [Middleware](https://mintlify.wiki/remix-run/react-router/framework/middleware.md) - [Presets](https://mintlify.wiki/remix-run/react-router/framework/presets.md) - [Server Bundles](https://mintlify.wiki/remix-run/react-router/framework/server-bundles.md) - [Server Rendering](https://mintlify.wiki/remix-run/react-router/framework/server-rendering.md) - [Type Generation](https://mintlify.wiki/remix-run/react-router/framework/type-generation.md) - [Vite Plugin](https://mintlify.wiki/remix-run/react-router/framework/vite-plugin.md) - [Data Mode](https://mintlify.wiki/remix-run/react-router/getting-started/data-mode.md): Guide to React Router Data Mode with createBrowserRouter, loaders, and actions - [Declarative Mode](https://mintlify.wiki/remix-run/react-router/getting-started/declarative-mode.md): Guide to React Router Declarative Mode with BrowserRouter, Routes, and Route components - [Framework Mode](https://mintlify.wiki/remix-run/react-router/getting-started/framework-mode.md): Complete guide to React Router Framework Mode with Vite plugin, type safety, and SSR/SPA support - [Picking a Mode](https://mintlify.wiki/remix-run/react-router/getting-started/picking-a-mode.md): Choose between Declarative, Data, and Framework modes for React Router - [Accessibility](https://mintlify.wiki/remix-run/react-router/guides/accessibility.md) - [Error Handling](https://mintlify.wiki/remix-run/react-router/guides/error-handling.md) - [File Uploads](https://mintlify.wiki/remix-run/react-router/guides/file-uploads.md) - [Form Validation](https://mintlify.wiki/remix-run/react-router/guides/form-validation.md) - [Headers and Cookies](https://mintlify.wiki/remix-run/react-router/guides/headers-and-cookies.md) - [Meta Tags](https://mintlify.wiki/remix-run/react-router/guides/meta-tags.md) - [Navigation Blocking](https://mintlify.wiki/remix-run/react-router/guides/navigation-blocking.md) - [Pre-rendering (SSG)](https://mintlify.wiki/remix-run/react-router/guides/pre-rendering.md) - [Search Parameters](https://mintlify.wiki/remix-run/react-router/guides/search-params.md) - [Session Management](https://mintlify.wiki/remix-run/react-router/guides/sessions.md) - [SPA Mode](https://mintlify.wiki/remix-run/react-router/guides/spa-mode.md) - [React Suspense Integration](https://mintlify.wiki/remix-run/react-router/guides/suspense.md) - [View Transitions](https://mintlify.wiki/remix-run/react-router/guides/view-transitions.md) - [Installation](https://mintlify.wiki/remix-run/react-router/installation.md): Install React Router for Framework, Data, or Declarative mode - [Introduction](https://mintlify.wiki/remix-run/react-router/introduction.md): React Router is a multi-strategy router for React bridging the gap from React 18 to React 19 - [Migrating from Remix](https://mintlify.wiki/remix-run/react-router/migration/from-remix.md) - [Migrating from React Router v6](https://mintlify.wiki/remix-run/react-router/migration/from-v6.md) - [Quick Start](https://mintlify.wiki/remix-run/react-router/quickstart.md): Build your first React Router app in minutes - [Dynamic Route Segments](https://mintlify.wiki/remix-run/react-router/routing/dynamic-segments.md): Learn how to use dynamic URL parameters in React Router - [File-Based Routing Conventions](https://mintlify.wiki/remix-run/react-router/routing/file-conventions.md): Learn React Router's file-based routing conventions using flatRoutes() - [Index Routes](https://mintlify.wiki/remix-run/react-router/routing/index-routes.md): Learn how to use index routes for default child routes in React Router - [Layout Routes](https://mintlify.wiki/remix-run/react-router/routing/layout-routes.md): Learn how to create layout routes that wrap child routes without adding URL segments - [Nested Routes](https://mintlify.wiki/remix-run/react-router/routing/nested-routes.md): Learn how to create nested route hierarchies in React Router - [Route Configuration](https://mintlify.wiki/remix-run/react-router/routing/route-configuration.md): Learn how to configure routes in React Router using routes.ts