The React-Router library provides several components that address various use cases, such as adding navigation links with <Link> and <NavLink>, redirecting the user using the <Redirect> component, and so on. The <BrowserRouter> component wraps the application's root component (<App />) and enables these components to interact with the history object. When the application initializes, the <BrowserRouter> component initializes the history object and makes it available to all its child components using React's context.
Routing in a single-page application is not really routing; rather, it's conditional rendering of components. The <BrowserRouter> component creates the history object, and the history object has methods such as push, replace...