Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

React Router - What's the difference between Router and Switch?

Tags:

reactjs

I'm trying to understand the difference between using Router and Switch in React Router.

But I don't understand why using Switch in bellow example works:

import { BrowserRouter, Route, Switch } from 'react-router-dom';

ReactDOM.render(
  <React.StrictMode>
     <BrowserRouter>
        <Switch>
            <Route exact path="/" component={App} />
            <Route path="/item" component={SocialMediaShare} />
        </Switch>
    </BrowserRouter>
  </React.StrictMode>,
  document.getElementById('root')
);

But using Router throws an error:

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

ReactDOM.render(
  <React.StrictMode>
     <BrowserRouter>
        <Router>
            <Route exact path="/" component={App} />
            <Route path="/item" component={SocialMediaShare} />
        </Router>
    </BrowserRouter>
  </React.StrictMode>,
  document.getElementById('root')

enter image description here

like image 514
HomTom Avatar asked Feb 01 '26 22:02

HomTom


1 Answers

In addition to the answers, it should be noted that starting from react-router-dom v6, <Switch /> has been replaced by <Routes />.

like image 74
Brendan Avatar answered Feb 03 '26 15:02

Brendan