React Router is a standard library for routing in a React app. It enables the navigation among views of various components in a React Application and allows changing the browser URL.
Super Easy installation
Create a react app first and when you are done with that then do a simple npm install of react-router-dom as shown below.
npx create-react-app demo-app
cd demo-app
npm install react-router-dom
Now after installing react-router-dom, add its components to your React app.
import {
BrowserRouter as Router,
Link,
Route,
Switch
} from 'react-router-dom';
Four main components :
- BrowserRouter : It is the parent component and the other Child components which we need to create routes for are wrapped inside this component.
BrowserRouter is a router implementation that uses the HTML5 history API(pushState, replaceState and the popstate event) to keep your UI in sync with the URL. - Link : It works like html anchor tags, this is used to create routes and implement the navigation in the application.
- Route : Route is used to conditionally open a component/page based on the link selected.
- Switch : Switch component is used to render only the first route that matches the location rather than rendering all matching routes.
Example to showcase the React Router using the above components :
import React from "react";
import {
BrowserRouter as Router,
Link,
Switch,
Route,
} from "react-router-dom";
// This site has 3 pages, all of which are rendered
// dynamically in the browser (not server rendered).
// Although the page does not ever refresh, notice how
// React Router keeps the URL up to date as you navigate
// through the site. This preserves the browser history,
// making sure things like the back button and bookmarks
// work properly.
export default function RouteExample() {
return (
<Router>
<div>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About Us</Link>
</li>
<li>
<Link to="/dashboard">Dashboard</Link>
</li>
</ul>
<hr />
<Switch>
<Route exact path="/">
<Home />
</Route>
<Route path="/about">
<About />
</Route>
<Route path="/dashboard">
<Dashboard />
</Route>
</Switch>
</div>
</Router>
);
}
// You can think of these components as "pages"
in your app.
function Home() {
return (
<div>
<h2>Home</h2>
</div>
);
}
function About() {
return (
<div>
<h2>About Us</h2>
</div>
);
}
function Dashboard() {
return (
<div>
<h2>Dashboard</h2>
</div>
);
}
Summary
In this article, we learnt about react routing using react-router-dom which can be installed as a node dependency and then used in any react app to navigate between the pages.
Please let us know in the comments below about your thoughts and queries.
Hope you liked it !