The <Router> component in the react-router package provides a low-level implementation of the router interface. Various routers in react-router-dom and react-router-native use this low-level <Router> interface to provide routing features for the given environment. The history prop in <Router> is used to specify the history object for the given environment. For example, the <BrowserRouter> component uses history/createBrowserHistory to create a history object in the browser environment. All the Router components accept only one child, and it's usually the application's root component.
The BrowserRouter component in react-router-dom makes use of the HTML5 history API to keep the application's URL in sync with the browser's history. It accepts props—basename, keyLength, forceRefresh, and getUserConfirmation. The <HashRouter...