Skip to content

Сравнение

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НетЧастичная

No AI participated in the development. MIT License