Ответ
Основные отличия React Router v6 от v5:
- Switch заменен на Routes
В v6<Routes>автоматически выбирает лучший маршрут, в v5 использовался<Switch>с последовательным перебором.
// v5
<Switch>
<Route path="/about" component={About} />
</Switch>
// v6
<Routes>
<Route path="/about" element={<About />} />
</Routes>componentзаменен наelement
Теперь передается JSX-элемент вместо компонента.Относительные пути и вложенные маршруты
В v6 пути автоматически становятся относительными, а вложенные маршруты проще:
<Route path="user" element={<User />}>
<Route path="profile" element={<Profile />} />
</Route>- Упрощенный useNavigate вместо useHistory
В v6:
const navigate = useNavigate();
navigate('/about');- Обязательные exact пути
В v6 все пути ведут себя как exact, в v5 нужно было указывать exact явно.