Поясню за router5:
Не зависит от реакта
Не привязан к ui
Роутинг в отдельном слое
State-first роутер
Роуты описываются в одном месте
Гибкая настройка матчинга
Древовидная структура роутов
Роутер следит за навигацией и обновляет состояние
View не хэндлит роуты, а только подписывается на роут-ноды
Возможность отмены переходов
Форвардинг переходов
Гибкая обработка "Not found"
Поддержка мидлвар, плагинов
Работает с SSR
Интегрируется с любыми либами
Легко покрыть тестами
Достаточно "взрослый"
Адекватный размер, учитывая богатые возможности
Больше 1к звезд, 17к загр./нед.
Обновляется и поддерживается
Документация:
https://router5.js.org