codingstuff.io
ExploreTutorialsProblemsCS Subjects
Get Started
ExploreTutorialsProblemsCS Subjects
Get Started
codingstuff.io

Master the art of building software through interactive tutorials, real-world problems, and guided projects.

Pune, Maharashtra, India

codingstuffmail@gmail.com

Product

  • Explore
  • Tutorials
  • Problems
  • CS Subjects

Company

  • About
  • Contact
  • Privacy Policy
  • Terms & Conditions
  • Sitemap

© 2026 codingstuff.io. All rights reserved.

Built with ❤️ for developers everywhere

/
/
All Tutorials
⚛️

React.js

25 / 61 topics
24Introduction to React Router25Basic Routing with React Router26Nested Routes in React Router27Protected Routes in React Router
Tutorials/React.js/Basic Routing with React Router
⚛️React.js

Basic Routing with React Router

Updated 2026-04-20
4 min read

Basic Routing with React Router

Routing is a crucial aspect of building single-page applications (SPAs) with React. It allows you to navigate between different views without reloading the page, providing a seamless user experience. In this tutorial, we'll explore how to set up basic routing in a React application using React Router.

Introduction to React Router

React Router is a standard library for routing in React applications. It enables you to create dynamic and interactive web pages by mapping URLs to components. The most commonly used version of React Router is react-router-dom, which provides the necessary tools for browser-based routing.

Setting Up React Router

To get started with React Router, you need to install it first. You can do this using npm or yarn:

npm install react-router-dom

or

yarn add react-router-dom

Once installed, you can set up the basic routing structure in your application.

Basic Routing Structure

The core components of React Router are BrowserRouter, Route, and Routes. Here's a brief overview of each:

  • BrowserRouter: This is the router implementation for HTML5 history API. It uses the HTML5 pushState API to keep the UI in sync with the URL.

  • Route: This component is used to render different components based on the current URL.

  • Routes: This component renders only the first Route or Redirect that matches the location, similar to Switch in v5.

Example: Basic Routing Setup

Let's create a simple React application with basic routing. First, import the necessary components from react-router-dom:

import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';

Next, define your components for different routes:

const Home = () => <h2>Home</h2>;
const About = () => <h2>About</h2>;
const Contact = () => <h2>Contact</h2>;

Now, set up the routing structure in your main application component:

function App() {
  return (
    <Router>
      <div>
        <nav>
          <ul>
            <li>
              <Link to="/">Home</Link>
            </li>
            <li>
              <Link to="/about">About</Link>
            </li>
            <li>
              <Link to="/contact">Contact</Link>
            </li>
          </ul>
        </nav>

        {/* A <Routes> looks through its children <Route>s and
            renders the first one that matches the current URL. */}
        <Routes>
          <Route path="/about" element={<About />} />
          <Route path="/contact" element={<Contact />} />
          <Route path="/" element={<Home />} />
        </Routes>
      </div>
    </Router>
  );
}

export default App;

Explanation

  • BrowserRouter: Wraps your entire application to enable routing.

  • nav: Contains links that users can click to navigate between different routes. Use the Link component from React Router for internal navigation.

  • Routes: Ensures that only the first matching route is rendered. This prevents multiple components from being displayed simultaneously.

  • Route: Maps a specific path to a component. The path prop specifies the URL pattern, and the element prop specifies the component to render when the path matches.

Dynamic Routing

React Router also supports dynamic routing, where you can pass parameters in the URL. For example, you might want to display details of a user based on their ID.

Example: Dynamic Routing

First, define a new component for displaying user details:

const User = ({ match }) => {
  return <h2>User {match.params.id}</h2>;
};

Next, add a route with a dynamic segment in your Routes component:

<Routes>
  {/* Other routes */}
  <Route path="/user/:id" element={<User />} />
</Routes>

Now, you can navigate to /user/1, /user/2, etc., and the User component will display the user ID.

Redirects

Sometimes, you might want to redirect users from one route to another. React Router provides a Navigate component for this purpose.

Example: Using Redirect

First, import the Navigate component:

import { BrowserRouter as Router, Route, Routes, Navigate } from 'react-router-dom';

Then, add a Navigate component in your Routes:

<Routes>
  {/* Other routes */}
  <Route path="/old-path" element={<Navigate to="/new-path" />} />
</Routes>

This will redirect users visiting /old-path to /new-path.

Best Practices

  1. Use exact Prop: When defining routes, use the exact prop to ensure that only exact matches are rendered. This prevents partial matches from causing unintended behavior.

    <Route path="/" element={<Home />} />
    
  2. Keep Routes Organized: As your application grows, keep your routing logic organized by separating it into a dedicated file or module.

  3. Use Routes for Exact Matches: Always use Routes to ensure that only one route is rendered at a time, especially when using dynamic routes.

  4. Handle 404 Pages: Implement a fallback route to handle 404 errors gracefully.

    <Route path="*" element={<NotFound />} />
    
  5. Use Link Instead of <a> Tags: For internal navigation, use the Link component from React Router instead of standard HTML anchor tags. This prevents full page reloads and leverages client-side routing.

    import { Link } from 'react-router-dom';
    
    <nav>
      <ul>
        <li><Link to="/">Home</Link></li>
        <li><Link to="/about">About</Link></li>
        <li><Link to="/contact">Contact</Link></li>
      </ul>
    </nav>
    

Conclusion

React Router is a powerful tool for managing routing in React applications. By following the steps outlined in this tutorial, you can set up basic routing and handle dynamic routes, redirects, and 404 pages. As your application grows more complex, continue to leverage React Router's features to create a robust and user-friendly navigation experience.

Remember to always keep your routing logic organized and maintain best practices for optimal performance and readability. Happy coding!


PreviousIntroduction to React RouterNext Nested Routes in React Router

Recommended Gear

Introduction to React RouterNested Routes in React Router