Сравнение
Minified / + Brotli
reactive-routev1.0.05.27 KB/ 2.11 KB
mobx-routerv1.0.0x3.725.71 KB/ 7.87 KB
@solidjs/routerv0.15.4x4.023.40 KB/ 8.54 KB
@kitbag/routerv0.22.0x14.4112.16 KB/ 30.45 KB
vue-routerv5.0.0x19.1137.26 KB/ 40.34 KB
@tanstack/react-routerv1.157.15x19.4151.71 KB/ 40.93 KB
react-routerv7.13.0x24.4184.46 KB/ 51.49 KB
Конфигурация
Используется esbuild с минификацией и исключением peerDependencies участвующих библиотек. При включении tree shaking в реальных проектах размеры могут быть меньше.
ts
esbuild.build({
minify: true,
target: 'chrome140',
packages: 'bundle',
external: ['react', 'mobx', 'mobx-react-lite', 'vue', 'zod', 'react-dom'],
treeShaking: false,
});Входные файлы
ts
import * as a from 'reactive-route';
import * as b from 'reactive-route/adapters/mobx-react';
import * as c from 'reactive-route/react';
a;
b;
c;ts
import * as a from 'mobx-router';
a;ts
import * as a from 'vue-router';
a;ts
import * as a from '@kitbag/router';
a;ts
import * as a from '@tanstack/react-router';
a;ts
import * as a from 'react-router';
a;ts
import * as a from '@solidjs/router';
a;Функционал
| Reactive Route | Большинство других библиотек | |
|---|---|---|
| Типизация | Полная (кроме beforeEnter / beforeLeave) | Частичная (из-за динамического объявления и вложенности TS не знает актуальное дерево роутов) |
| Реактивность | Любая с Proxy | Только для одной библиотеки / отсутствует |
| Фреймворк | Любой | Один, в редких исключениях - адаптеры для похожих фреймворков (React + Solid.js) |
| Жизненный цикл | Асинхронный | Синхронный |
| Валидация параметров | Обязательна | Опциональна / отсутствует |
| SSR | Простая настройка | Сложная настройка |
| Удобство DX | Быстрые переходы, простой авто-рефакторинг, чистая структура | Полная структура есть только в рантайме, ручной контроль редиректов по строкам |
| Файловая структура | Любая | Ограничена при file-based подходе |
| Code splitting | Нативный (для компонентов страниц и других экспортов) | Частичный / через специфичные утилиты |
| Набор готовых компонентов | Только Router | Есть |
| Dev tools | Нет (но легко логировать активный State) | Есть |
| Nested configs | Нет | Есть |
| Wildcards | Нет | Есть |
| Динамические роуты | Нет | Есть |
| Опциональные части path | Нет | Есть |
| File-based | Нет | Есть |
| Поддержка hash и URL state | Нет | Частичная |
| Конвертация типов params и query | Нет | Частичная |