Вопрос проверяет знание ключевых изменений в библиотеке React Router между версиями 5 и 6, что важно для миграции проектов и понимания современного подхода к маршрутизации в React.
React Router v6 представляет собой значительное обновление, которое упрощает API и делает маршрутизацию более интуитивной. Главное изменение — замена компонента Switch на Routes, который автоматически выбирает наиболее подходящий маршрут, а не первый совпадающий.
В v5 использовался компонент Switch для группировки Route, и порядок маршрутов имел значение. В v6 Switch заменен на Routes, а Route теперь принимает prop element вместо component или render. Это позволяет передавать компоненты напрямую:
// React Router v5
// React Router v6
} />
} />
В v5 для программной навигации использовался хук useHistory. В v6 он заменен на useNavigate, который предоставляет более гибкий API:
// React Router v5
const history = useHistory();
history.push('/home');
// React Router v6
const navigate = useNavigate();
navigate('/home');
navigate(-1); // для перехода назадReact Router v6 значительно улучшил поддержку вложенных маршрутов. Теперь можно определять дочерние маршруты прямо внутри родительского компонента, используя Outlet:
function App() {
return (
}>
} />
} />
);
}
function Dashboard() {
return (
Dashboard
{/* Здесь будут отображаться дочерние маршруты */}
);
}React Router v6 предлагает более чистый и предсказуемый API, упрощает работу с вложенными маршрутами и улучшает производительность. При миграции с v5 на v6 стоит обратить внимание на замену Switch на Routes, обновление хуков навигации и рефакторинг вложенных маршрутов с использованием Outlet.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
React
React Router
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию