softare development

Working With React Router in React JS

Routing and navigation are inevitable in most software applications

The way you would handle routing and navigation in React JS is somewhat different from the way you would, let’s say, in traditional HTML.

In this tutorial we shall see how to work with React Router in React JS

So let’s get straight to the point, shall we.

1. First, you want to create your React project:

npx create-react-app yourFolderName

2. Then add the React Router dependency

yarn add react-router-dom

        or 

npm install react-router-dom

3. Next, start the app

yarn start

Let’s just design a simple nabber for our application. In your App.js (any other convenient file of your choice) add the following:

 <ul className="nav-link-style">
 <li>Home</li>
 <li>About</li>
 <li>Contact</li>
 <li>Services</li>
 </ul>

Let’s add a bit of styling our App.css

 .nav-link-style {
   display: flex;
   flex-direction: row;
   justify-content: space-evenly;
   align-items: center;
   list-style: none;
 }

Here’s our output for now:

React JS Routing and Navigation

Next, let’s add the Routing Logic

We will create a separate file and call it RouteFile (or whatever you decide to call yours, but it must not be Route or Router). This will handle our React Router We will add the following code to our RouteFile.js

import React from 'react';
import {BrowserRouter as Router, Switch, Route} from 'react-router-dom';
import App from '../App';


function RouteFile(){
    return(
        <Router>
            <Switch>
                <Route exact path="/" component={App} />
            </Switch>
        </Router>
    )
}

export default RouteFile;

So, here’s our routing file and we only have one Route (or navigation) here. Notice we have the word “exact” and for path we have the “/” and our component App.js. This means the App.js file is our landing page. When anyone visits our our website for the first time, they will land on the App.js file.

This is similar to our default index file in html.

What we want to do next is to create file components for other screens and link them accordingly.

Here’s what our Routing File looks like

import React from 'react';
import {BrowserRouter as Router, Switch, Route} from 'react-router-dom';
import About from '../About';
import App from '../App';
import Contact from '../Contact';
import Services from '../Services';


function RouteFile(){
    return(
        <Router>
            <Switch>
                <Route exact path="/" component={App} />
                <Route  path="/about" component={About} />
                <Route  path="/contact" component={Contact} />
                <Route  path="/services" component={Services} />
            </Switch>
        </Router>
    )
}

export default RouteFile;

One advantage of Routing in React JS is that we able to customise our url to something short, simple and unique.

So, here’s the full code for our App.js file

import React, { Component } from "react";
import "./App.css";
import { Link } from "react-router-dom";

class App extends Component {
 
  render() {
    return (
      <div>
        <ul className="nav-link-style">
          <li><Link to="/">Home</Link></li>
          <li><Link to="/about">About</Link></li>
          <li><Link to="/contact">Contact</Link></li>
          <li><Link to="/services">Services</Link></li>
        </ul>
      </div>
    );
  }
}

export default App;

Finally, to make our Routing take effect, we need to set our RouteFile.js as the default starting component in our index.js file. Usually, the default component is App.js. But will replace that as follows:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import RouteFile from './Routes/RouteFile';

ReactDOM.render(
  <React.StrictMode>
    <RouteFile /> 
  </React.StrictMode>,
  document.getElementById('root')
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

Here’s how it works now:

Routing in React Js

Congratulations!

You have successfully added React Router to your React application.

See also

Mobile app template for mobile app developers

Recent Posts

Instagram Extends Reels Duration to 3 Minutes

Regardless of whether TikTok faces a U.S. ban, Instagram is wasting no time positioning itself…

2 days ago

AWS Expands Payment Options for Nigerian Customers, Introducing Naira (NGN) for Local Transactions

Amazon Web Services (AWS) continues to enhance its customer experience by offering more flexible payment…

6 days ago

Why JavaScript Remains Dominant in 2025

JavaScript, often hailed as the "language of the web," continues to dominate the programming landscape…

7 days ago

Amazon Moves to Upgrade Alexa with Generative AI Technology

Amazon is accelerating efforts to reinvent Alexa as a generative AI-powered “agent” capable of performing…

1 week ago

Smuggled Starlink Devices Allegedly Used to Bypass India’s Internet Shutdown

SpaceX's satellite-based Starlink, which is currently unlicensed for use in India, is reportedly being utilized…

1 week ago

Why Netflix Dumped React For its Frontend

Netflix, a pioneer in the streaming industry, has always been at the forefront of adopting…

1 week ago