DEV Community

Cover image for Browser Router in React
Jayashree
Jayashree

Posted on

Browser Router in React

When building a React application, users move between pages like Home, About, Contact, etc. Instead of reloading the entire page, React uses Browser Router to change pages without refreshing.

What is Browser Router?

BrowserRouter is used to enable routing in React applications.

It allows:

  • Navigate between pages
  • Change URL without page refresh
  • Create Single Page Applications (SPA)

Simply:

BrowserRouter connects URL paths with React components.

Why do we use Browser Router?

Without Browser Router:

  • Every page change reloads the website
  • Slower user experience

With Browser Router:

  • Faster navigation
  • Better user experience
  • No full page reload

Install React Router

npm install react-router-dom
Enter fullscreen mode Exit fullscreen mode

Basic Setup

Step 1: Import BrowserRouter

import { BrowserRouter } from "react-router-dom";
Enter fullscreen mode Exit fullscreen mode

Step 2: Wrap App Component

import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App";
import { BrowserRouter } from "react-router-dom";

ReactDOM.createRoot(document.getElementById("root")).render(

<BrowserRouter>
<App />
</BrowserRouter>

);
Enter fullscreen mode Exit fullscreen mode

Creating Routes

import { Routes, Route } from "react-router-dom";
import Home from "./Home";
import About from "./About";

function App(){

return(

<Routes>

<Route path="/" element={<Home/>}/>

<Route path="/about" element={<About/>}/>

</Routes>

)

}

export default App;
Enter fullscreen mode Exit fullscreen mode

Navigation Using Link

Instead of using:

<a href="/about">About</a>
Enter fullscreen mode Exit fullscreen mode

Use:

import { Link } from "react-router-dom";

<Link to="/">Home</Link>

<Link to="/about">About</Link>
Enter fullscreen mode Exit fullscreen mode

Why Link?

Because:

  • Prevents page refresh
  • Faster navigation
  • Keeps SPA behavior

Example Folder Structure

src

├── App.jsx

├── Home.jsx

├── About.jsx

└── main.jsx
Enter fullscreen mode Exit fullscreen mode

Complete Example

import { BrowserRouter, Routes, Route, Link } from "react-router-dom";

function Home(){

return <h1>Home Page</h1>

}

function About(){

return <h1>About Page</h1>

}

function App(){

return(

<>

<nav>

<Link to="/">Home</Link>

<Link to="/about">About</Link>

</nav>

<Routes>

<Route path="/" element={<Home/>}/>

<Route path="/about" element={<About/>}/>

</Routes>

</>

)

}

export default App;
Enter fullscreen mode Exit fullscreen mode

Important Components

Component Purpose
BrowserRouter Enables routing
Routes Holds all routes
Route Creates route path
Link Navigation between pages

Simply Definition:

BrowserRouter is used for routing in React applications. It enables navigation between pages without refreshing the browser and helps create Single Page Applications.

Conclusion

Browser Router helps React applications:

  • Navigate between pages
  • Change URL without reload
  • Create faster user experience
  • Build Single Page Applications

Without BrowserRouter -> Full page reload
With BrowserRouter -> Smooth navigation

Top comments (0)