Некоторые отличия React Router v5 от v6:
- Замена Switch на Routes. 12 В v5 для обертки маршрутов использовался Switch, а в v6 его заменили на Routes. 2
- Отсутствие необходимости в свойстве exact. 12 В v5 оно было нужно, чтобы избежать частичного совпадения маршрутов, а в v6 по умолчанию все маршруты точные, поэтому свойство больше не требуется. 2
- Вложенные маршруты. 2 В v5 вложенные маршруты создавались путём размещения компонентов Route внутри родительского компонента, а в v6 они напрямую объявляются внутри структуры Routes. 2
- Замена useHistory на useNavigate. 2 В v5 для программной навигации использовался useHistory(), а в v6 его заменили на useNavigate(). 2
- Методы отрисовки маршрутов. 2 В v5 для отрисовки компонентов можно было использовать component, render или children props, а в v6 эти свойства удалены, теперь для отрисовки JSX используется только element. 2
- Относительные маршруты. 2 В v5 при навигации нужно было строить абсолютные пути, а в v6 поддерживается относительные пути на основе текущей траектории. 2
- Перенаправление. 2 В v5 для обработки перенаправлений маршрутов использовался компонент Redirect, а в v6 его заменили на Navigate. 2
Кроме того, размер React Router v6 значительно уменьшен по сравнению с предыдущими версиями. 3