В чем разница в маршрутизации в React Router v5 и React Router v6

Ответ

Основные отличия React Router v6 от v5:

  1. Switch заменен на Routes

    В v6 <Routes> автоматически выбирает лучший маршрут, в v5 использовался <Switch> с последовательным перебором.
// v5
<Switch>
  <Route path="/about" component={About} />
</Switch>

// v6
<Routes>
  <Route path="/about" element={<About />} />
</Routes>

  1. component заменен на element

    Теперь передается JSX-элемент вместо компонента.



  2. Относительные пути и вложенные маршруты

    В v6 пути автоматически становятся относительными, а вложенные маршруты проще:


<Route path="user" element={<User />}>
  <Route path="profile" element={<Profile />} />
</Route>
  1. Упрощенный useNavigate вместо useHistory

    В v6:
const navigate = useNavigate();
navigate('/about');
  1. Обязательные exact пути

    В v6 все пути ведут себя как exact, в v5 нужно было указывать exact явно.