---
title: HistoryRouter
unstable: true
---
# unstable_HistoryRouter
[MODES: declarative]
This API is experimental and subject to breaking changes in
minor/patch releases. Please use with caution and pay **very** close attention
to release notes for relevant changes.
## Summary
[Reference Documentation ↗](https://api.reactrouter.com/v7/functions/react_router.unstable_HistoryRouter.html)
A declarative [``](../declarative-routers/Router) that accepts a pre-instantiated
`history` object.
It's important to note that using your own `history` object is highly discouraged
and may add two versions of the `history` library to your bundles unless you use
the same version of the `history` library that React Router uses internally.
## Signature
```tsx
function HistoryRouter({
basename,
children,
history,
unstable_useTransitions,
}: HistoryRouterProps)
```
## Props
### basename
Application basename
### children
```` components describing your route configuration
### history
A `History` implementation for use by the router
### unstable_useTransitions
Control whether router state updates are internally wrapped in
[`React.startTransition`](https://react.dev/reference/react/startTransition).
- When left `undefined`, all router state updates are wrapped in
`React.startTransition`
- When set to `true`, [`Link`](../components/Link) and [`Form`](../components/Form) navigations will be wrapped
in `React.startTransition` and all router state updates are wrapped in
`React.startTransition`
- When set to `false`, the router will not leverage `React.startTransition`
on any navigations or state changes.
For more information, please see the [docs](https://reactrouter.com/explanation/react-transitions).