# React Router > Thank you for helping improve our documentation! ## Pages - [Await](api-components-await.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [Form](api-components-form.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [Link](api-components-link.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [Links](api-components-links.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [Meta](api-components-meta.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [NavLink](api-components-navlink.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [Navigate](api-components-navigate.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [Outlet](api-components-outlet.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [PrefetchPageLinks](api-components-prefetchpagelinks.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [Route](api-components-route.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [Routes](api-components-routes.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [Scripts](api-components-scripts.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [ScrollRestoration](api-components-scrollrestoration.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [RouterProvider](api-data-routers-routerprovider.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [StaticRouterProvider](api-data-routers-staticrouterprovider.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [createBrowserRouter](api-data-routers-createbrowserrouter.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [createHashRouter](api-data-routers-createhashrouter.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [createMemoryRouter](api-data-routers-creatememoryrouter.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [createStaticHandler](api-data-routers-createstatichandler.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [createStaticRouter](api-data-routers-createstaticrouter.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [BrowserRouter](api-declarative-routers-browserrouter.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [HashRouter](api-declarative-routers-hashrouter.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [HistoryRouter](api-declarative-routers-historyrouter.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [MemoryRouter](api-declarative-routers-memoryrouter.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [Router](api-declarative-routers-router.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [StaticRouter](api-declarative-routers-staticrouter.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [.client modules](api-framework-conventions-client-modules.md): [MODES: framework] - [entry.client.tsx](api-framework-conventions-entryclienttsx.md): [MODES: framework] - [entry.server.tsx](api-framework-conventions-entryservertsx.md): [MODES: framework] - [react-router.config.ts](api-framework-conventions-react-routerconfigts.md): [MODES: framework] - [root.tsx](api-framework-conventions-roottsx.md): [MODES: framework] - [routes.ts](api-framework-conventions-routests.md): [MODES: framework] - [.server modules](api-framework-conventions-server-modules.md): [MODES: framework] - [HydratedRouter](api-framework-routers-hydratedrouter.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [ServerRouter](api-framework-routers-serverrouter.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useActionData](api-hooks-useactiondata.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useAsyncError](api-hooks-useasyncerror.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useAsyncValue](api-hooks-useasyncvalue.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useBeforeUnload](api-hooks-usebeforeunload.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useBlocker](api-hooks-useblocker.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useFetcher](api-hooks-usefetcher.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useFetchers](api-hooks-usefetchers.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useFormAction](api-hooks-useformaction.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useHref](api-hooks-usehref.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useInRouterContext](api-hooks-useinroutercontext.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useLinkClickHandler](api-hooks-uselinkclickhandler.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useLoaderData](api-hooks-useloaderdata.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useLocation](api-hooks-uselocation.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useMatch](api-hooks-usematch.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useMatches](api-hooks-usematches.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useNavigate](api-hooks-usenavigate.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useNavigation](api-hooks-usenavigation.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useNavigationType](api-hooks-usenavigationtype.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useOutlet](api-hooks-useoutlet.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useOutletContext](api-hooks-useoutletcontext.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useParams](api-hooks-useparams.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [usePrompt](api-hooks-useprompt.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useResolvedPath](api-hooks-useresolvedpath.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useRevalidator](api-hooks-userevalidator.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useRouteError](api-hooks-userouteerror.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useRouteLoaderData](api-hooks-userouteloaderdata.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useRoutes](api-hooks-useroutes.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useSearchParams](api-hooks-usesearchparams.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useSubmit](api-hooks-usesubmit.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [useViewTransitionState](api-hooks-useviewtransitionstate.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [@react-router/{adapter}](api-other-api-adapter.md): Idiomatic React Router apps can generally be deployed anywhere because React Router adapts the server's request/respo... - [@react-router/dev (CLI)](api-other-api-dev.md): The React Router CLI comes from the`@react-router/dev`package. Make sure it is in your`package.json``devDependenc... - [@react-router/serve](api-other-api-serve.md): React Router is designed for you to own your server, but if you don't want to set one up, you can use the React Route... - [RSCHydratedRouter](api-rsc-rschydratedrouter.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [RSCStaticRouter](api-rsc-rscstaticrouter.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [createCallServer](api-rsc-createcallserver.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [getRSCStream](api-rsc-getrscstream.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [matchRSCServerRequest](api-rsc-matchrscserverrequest.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [routeRSCServerRequest](api-rsc-routerscserverrequest.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [IsCookieFunction](api-utils-iscookiefunction.md): [MODES: framework, data] - [IsSessionFunction](api-utils-issessionfunction.md): [MODES: framework, data] - [RouterContextProvider](api-utils-routercontextprovider.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [createContext](api-utils-createcontext.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [createCookie](api-utils-createcookie.md): [MODES: framework, data] - [createCookieSessionStorage](api-utils-createcookiesessionstorage.md): [MODES: framework, data] - [createMemorySessionStorage](api-utils-creatememorysessionstorage.md): [MODES: framework, data] - [createPath](api-utils-createpath.md): [MODES: framework, data, declarative] - [createRequestHandler](api-utils-createrequesthandler.md): [MODES: framework, data, declarative] - [createRoutesFromElements](api-utils-createroutesfromelements.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [createRoutesStub](api-utils-createroutesstub.md): [MODES: framework, data] - [createSearchParams](api-utils-createsearchparams.md): [MODES: framework, data, declarative] - [createSession](api-utils-createsession.md): [MODES: framework, data, declarative] - [createSessionStorage](api-utils-createsessionstorage.md): [MODES: framework, data, declarative] - [data](api-utils-data.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [generatePath](api-utils-generatepath.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [href](api-utils-href.md): [MODES: framework] - [isCookie](api-utils-iscookie.md): [MODES: framework, data] - [isRouteErrorResponse](api-utils-isrouteerrorresponse.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [isSession](api-utils-issession.md): [MODES: framework, data] - [matchPath](api-utils-matchpath.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [matchRoutes](api-utils-matchroutes.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [parsePath](api-utils-parsepath.md): [MODES: framework, data, declarative] - [redirect](api-utils-redirect.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [redirectDocument](api-utils-redirectdocument.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [renderMatches](api-utils-rendermatches.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [replace](api-utils-replace.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [resolvePath](api-utils-resolvepath.md): ⚠️ ⚠️ IMPORTANT ⚠️ ⚠️ - [API Development Strategy](community-api-development-strategy.md): React Router is foundational to your application. We want to make sure that upgrading to new major versions is as smo... - [Contributing](community-contributing.md): Thanks for contributing, you rock! - [Markdown Elements](elements.md): This is for testing all the different kinds of markdown that can exist. Whenever I find a styling edge case that exis... - [Backend For Frontend](explanation-backend-for-frontend.md): [MODES: framework] - [Automatic Code Splitting](explanation-code-splitting.md): [MODES: framework] - [Network Concurrency Management](explanation-concurrency.md): [MODES: framework, data] - [Form vs. fetcher](explanation-form-vs-fetcher.md): [MODES: framework, data] - [Hot Module Replacement](explanation-hot-module-replacement.md): [MODES: framework] - [Hydration](explanation-hydration.md): There are a few nuances worth noting around the behavior of`HydrateFallback`: - [Index Query Param](explanation-index-query-param.md): [MODES: framework, data] - [Lazy Route Discovery](explanation-lazy-route-discovery.md): [MODES: framework] - [Location Object](explanation-location.md) - [Progressive Enhancement](explanation-progressive-enhancement.md): [MODES: framework] - [Race Conditions](explanation-race-conditions.md): [MODES: framework, data] - [React Transitions](explanation-react-transitions.md): [MODES: framework, data, declarative] - [Route Matching](explanation-route-matching.md) - [Server vs. Client Code Execution](explanation-server-client-execution.md): title: Server vs. Client Code Execution - [Sessions and Cookies](explanation-sessions-and-cookies.md): [MODES: framework, data] - [Special Files](explanation-special-files.md): The content of this page has been moved to the following: - [State Management](explanation-state-management.md): [MODES: framework, data] - [Type Safety](explanation-type-safety.md): [MODES: framework] - [Accessibility](how-to-accessibility.md): Accessibility in a React Router app looks a lot like accessibility on the web in general. Using proper semantic marku... - [Client Data](how-to-client-data.md): [MODES: framework] - [Data Strategy](how-to-data-strategy.md): [MODES: data] - [Error Boundaries](how-to-error-boundary.md): [MODES: framework, data] - [Error Reporting](how-to-error-reporting.md): [MODES: framework,data] - [Using Fetchers](how-to-fetchers.md): [MODES: framework, data] - [File Route Conventions](how-to-file-route-conventions.md): [MODES: framework] - [File Uploads](how-to-file-uploads.md): [MODES: framework] - [Form Validation](how-to-form-validation.md): [MODES: framework, data] - [HTTP Headers](how-to-headers.md): [MODES: framework] - [Instrumentation](how-to-instrumentation.md): [MODES: framework, data] - [Meta Tags and SEO](how-to-meta.md): [copy pasted from route module doc] - [Middleware](how-to-middleware.md): [MODES: framework, data] - [Navigation Blocking](how-to-navigation-blocking.md): [MODES: framework, data] - [Revalidation Optimization](how-to-optimize-revalidation.md): [copy pasted] - [Pre-Rendering](how-to-pre-rendering.md): [MODES: framework] - [Presets](how-to-presets.md): [MODES: framework] - [React Server Components](how-to-react-server-components.md): [MODES: framework, data] - [Resource Routes](how-to-resource-routes.md): [MODES: framework, data] - [Route Module Type Safety](how-to-route-module-type-safety.md): [MODES: framework] - [Security](how-to-security.md): [MODES: framework] - [Server Bundles](how-to-server-bundles.md): [MODES: framework] - [Single Page App (SPA)](how-to-spa.md): [MODES: framework] - [Status Codes](how-to-status.md): [MODES: framework ,data] - [Streaming with Suspense](how-to-suspense.md): [MODES: framework, data] - [Using handle](how-to-using-handle.md): [MODES: framework] - [View Transitions](how-to-view-transitions.md): [MODES: framework, data] - [Webhooks](how-to-webhook.md): Resource routes can be used to handle webhooks. For example, you can create a webhook that receives notifications fro... - [React Router Home](index.md): React Router is a multi-strategy router for React bridging the gap from React 18 to React 19. You can use it maximall... - [Actions](start-data-actions.md): [MODES: data] - [Custom Framework](start-data-custom.md): [MODES: data] - [Data Loading](start-data-data-loading.md): [MODES: data] - [Installation](start-data-installation.md): [MODES: data] - [Navigating](start-data-navigating.md): Navigating in Data Mode is the same as Framework Mode, please see the [Navigating](../framework/navigating) guide for... - [Pending UI](start-data-pending-ui.md): Pending UI is the same as Framework Mode, please see the [Pending UI](../framework/pending-ui) guide for more informa... - [Route Object](start-data-route-object.md): [MODES: data] - [Routing](start-data-routing.md): [MODES: data] - [Testing](start-data-testing.md): You can use`createRoutesStub`in data and framework modes. Please refer to the [Testing Guide](../framework/testing). - [Installation](start-declarative-installation.md): [MODES: declarative] - [Navigating](start-declarative-navigating.md): [MODES: declarative] - [Routing](start-declarative-routing.md): [MODES: declarative] - [URL Values](start-declarative-url-values.md): [MODES: declarative] - [Actions](start-framework-actions.md): [MODES: framework] - [Data Loading](start-framework-data-loading.md): [MODES: framework] - [Deploying](start-framework-deploying.md): [MODES: framework] - [Installation](start-framework-installation.md): [MODES: framework] - [Navigating](start-framework-navigating.md): [MODES: framework] - [Pending UI](start-framework-pending-ui.md): [MODES: framework] - [Rendering Strategies](start-framework-rendering.md): [MODES: framework] - [Route Module](start-framework-route-module.md): [MODES: framework] - [Routing](start-framework-routing.md): [MODES: framework] - [Testing](start-framework-testing.md): [MODES: framework, data] - [Picking a Mode](start-modes.md): React Router is a multi-strategy router for React. There are three primary ways, or "modes", to use it in your app. A... - [Address Book](tutorials-address-book.md): [MODES: framework] - [Advanced Data Fetching](tutorials-advanced-data-fetching.md): This document is a work in progress. There's not much to see here (yet). - [Quick Start](tutorials-quickstart.md): [MODES: framework] - [Framework Adoption from Component Routes](upgrading-component-routes.md): If you are using``please see [Framework Adoption from RouterProvider][upgrade-router-provider] inst... - [Future Flags](upgrading-future.md): This guide walks you through the process of adopting future flags in your React Router app. By following this strateg... - [Upgrading from Remix](upgrading-remix.md): React Router v7 requires the following minimum versions: - [Framework Adoption from RouterProvider](upgrading-router-provider.md): If you are not using``please see [Framework Adoption from Component Routes][upgrade-component-route... - [Upgrading from v6](upgrading-v6.md): React Router v7 requires the following minimum versions: