Sobes.tech
Junior

What is the purpose of the react-router-dom library in React?

sobes.tech AI

Answer from AI

react-router-dom is used for building single-page applications (SPA) in React, providing client-side routing.

Why is it needed:

  • Navigation: Allows users to move between different "pages" (components) without a full page reload.
  • URL management: Synchronizes the current URL in the browser's address bar with the displayed component.
  • Dynamic routing: Enables defining routes with parameters (e.g., /users/:id) to load specific data.
  • Programmatic navigation: Allows redirecting users via code (e.g., after successful data saving).

Main components:

  • BrowserRouter: Wrapper for the app that uses the History API to synchronize URLs.
  • Routes: Container for defining routes.
  • Route: Defines the match between URL and component.
  • Link: Component for creating links that prevent page reloads.
  • useNavigate: Hook for programmatic navigation.
  • useParams: Hook for extracting route parameters from the URL.

Example usage:

// App.js
import { BrowserRouter, Routes, Route, Link } from 'react-router-dom';
import Home from './Home';
import About from './About';

function App() {
  return (
    <BrowserRouter>
      <nav>
        <Link to="/">Home</Link> {' '}
        <Link to="/about">About</Link>
      </nav>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
        {/* Example of a dynamic route */}
        {/* <Route path="/users/:userId" element={<UserProfile />} /> */}
      </Routes>
    </BrowserRouter>
  );
}

export default App;