"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > Mastering React Routing: A Complete Guide to Navigating Your Application

Mastering React Routing: A Complete Guide to Navigating Your Application

Published on 2024-11-07
Browse:830

Mastering React Routing: A Complete Guide to Navigating Your Application

1. Introduction to React Router

React Router is a library for handling routing in React applications. It allows your app to navigate between different components and views without a full-page reload, making the user experience seamless.


2. Basic Setup

Start by installing react-router-dom:

npm install react-router-dom

Set up basic routing using BrowserRouter, Routes, and Route:

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

const Home = () => 

Home

; const About = () =>

About

; const App = () => { return ( } /> } /> ); }; export default App;

3. Nested Routing

For more complex apps, you can nest routes. Here’s how to set up nested routes in a parent component:

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

const Dashboard = () => 

Dashboard Home

; const Profile = () =>

Your Profile

; const DashboardLayout = () => { return (
} /> } />
); }; const App = () => { return ( } /> ); }; export default App;

4. Dynamic Routing

Dynamic routing allows you to pass parameters in the URL. Here’s how to define and access a dynamic route:

import { useParams } from 'react-router-dom';

const User = () => {
  const { id } = useParams();
  return 

User ID: {id}

; }; const App = () => { return ( } /> ); }; export default App;

5. Protected Routes

To implement protected routes, you can create a custom PrivateRoute component:

import { Navigate, Outlet } from 'react-router-dom';

const useAuth = () => {
  const user = { loggedIn: true }; // Replace with actual auth logic
  return user && user.loggedIn;
};

const PrivateRoute = () => {
  const isAuth = useAuth();
  return isAuth ?  : ;
};

const App = () => {
  return (
    } />
        }>
          } />
        
      
  );
};

export default App;

6. Programmatic Navigation

Sometimes, you may want to navigate programmatically, like after a form submission. Use the useNavigate hook in React Router v6:

import { useNavigate } from 'react-router-dom';

const Login = () => {
  const navigate = useNavigate();

  const handleLogin = () => {
    // Login logic here...
    navigate('/dashboard');
  };

  return (
    

Login

); }; export default Login;

7. 404 Pages

Handle 404 (Not Found) errors by creating a catch-all route:

const NotFound = () => 

404 - Page Not Found

; const App = () => { return ( } /> } /> } /> ); }; export default App;

8. Performance Considerations

For large applications, lazy loading routes can improve performance. Here’s how to implement lazy loading with React.lazy() and Suspense:

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

const Home = lazy(() => import('./Home'));
const About = lazy(() => import('./About'));

const App = () => {
  return (
    Loading...}>
        } />
          } />
        
  );
};

export default App;

Release Statement This article is reproduced at: https://dev.to/mourya_modugula/mastering-react-routing-a-complete-guide-to-navigating-your-application-56dk?1 If there is any infringement, please contact [email protected] to delete it
Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3