Introduction to React Router
React Router is a powerful library for handling routing in React applications. It allows you to create single-page applications with multiple views, managing the URLs in the browser’s address bar and rendering the appropriate components based on the URL.
In this tutorial, we’ll cover the basics of React Router and provide code examples to demonstrate its usage.
Installation
First, let’s install React Router in your React project using npm:
npm install react-router-dom
Setting Up Routes
Once React Router is installed, you can start defining routes in your application. Routes are specified using the <Route>
component provided by React Router.
// App.js
import React from 'react';
import { BrowserRouter as Router, Route } from 'react-router-dom';
import Home from './components/Home';
import About from './components/About';
import Contact from './components/Contact';
function App() {
return (
<Router>
<div>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/contact" component={Contact} />
</div>
</Router>
);
}
export default App;
In this example, we’ve defined routes for three different components: Home
, About
, and Contact
. The exact
keyword is used to match the exact path “/” for the Home
component.
Creating Navigation Links
To navigate between different routes, you can use the <Link>
component provided by React Router.
// Navbar.js
import React from 'react';
import { Link } from 'react-router-dom';
function Navbar() {
return (
<nav>
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/about">About</Link></li>
<li><Link to="/contact">Contact</Link></li>
</ul>
</nav>
);
}
export default Navbar;
Accessing Route Parameters
React Router allows you to access route parameters using the useParams()
hook or match.params
object.
// User.js
import React from 'react';
import { useParams } from 'react-router-dom';
function User() {
let { username } = useParams();
return (
<div>
<h2>User: {username}</h2>
</div>
);
}
export default User;
Redirecting Routes
You can redirect users to another route using the <Redirect>
component.
// PrivateRoute.js
import React from 'react';
import { Redirect, Route } from 'react-router-dom';
function PrivateRoute({ component: Component, ...rest }) {
const isAuthenticated = /* Check if user is authenticated */;
return (
<Route
{...rest}
render={(props) =>
isAuthenticated ? <Component {...props} /> : <Redirect to="/login" />
}
/>
);
}
export default PrivateRoute;
Conclusion
React Router simplifies the process of adding routing to your React applications, allowing you to create dynamic and interactive single-page applications. By following this tutorial and experimenting with the provided code examples, you should now have a solid understanding of how to implement React Router in your projects.