1. Обзор пакета
Package:
com.sharq-it.sus.router· Version: 1.0.16 · Analog: Vue Router
Назначение
SusRouter — это слой навигации для SUS. Он выносит роутинг из монолитного навигатора UI хост-проекта в отдельный пакет.
| В скоупе | Вне скоупа |
|---|---|
| Push/Replace/Back/Forward/Go | Библиотеки UI-компонентов |
| Guard-пайплайн (BeforeEach/CanEnter/CanLeave/BeforeResolve) | Реактивность — sus-core |
| Модалки + стек (SusModalService + SusRouterModal) | Игровая логика — хост-проект |
| Анимации на коде (Fade/Slide) | |
| KeepAlive LRU-кэш (off-DOM) | |
| Именованные/вложенные маршруты, redirect/alias | |
| Query-параметры, lazy loading | |
| SusRouteLink — декларативная навигация | |
SusApp.UseRouter — fluent-подключение |
Быстрый старт
Предпочитайте SusApp + UseRouter (Runtime/SusAppRouterExtensions.cs):
csharp
using Sharq.Core;
using Sharq.Router;
SusApp.Create(uiDocument)
.UseTheme(SusTheme.Dark)
.UseRouter(new SusRouter(), r =>
{
r.Register("/", typeof(HomeScreen));
r.Register("/settings", typeof(SettingsScreen));
}, initialPath: "/")
.Run();Полный API см. в 02-router-api.md (ReplaceNamed, HasRoute, RemoveRoute, Busy, MaxHistory, async guard'ы).
Экосистема
sus-core — foundation (reactivity, SusComponent, OverlayHost)
│
sus-router (this package) — navigation
│
UI component library (optional, separate product)
│
host project — your applicationСтруктура пакета
sus-router/
├── package.json
├── docs/ ← package docs + README
├── Runtime/
│ ├── SusRouter.cs ← Core: Register, Push, Replace, guards
│ ├── SusRoute.cs ← SusRouteRecord, SusRouteConfig, SusRoute, ISusRouteGuard
│ ├── SusScreen.cs ← Base screen class
│ ├── SusRouteView.cs ← Visual container + KeepAlive LRU (off-DOM cache)
│ ├── SusRouteLink.cs ← Link component
│ ├── SusModal.cs ← SusRouterModal — modal base class
│ ├── SusModalService.cs ← Modal stack (OverlayHost)
│ ├── SusRouteTransition.cs ← Code-based animations (SusMotion)
│ ├── SusRouteBuilder.cs ← Declarative route tree
│ ├── SusAppRouterExtensions.cs ← SusApp.UseRouter(...)
│ ├── SusOverlayServices.cs ← Service aggregation
│ └── Services/
│ └── SusTransitionService.cs
├── Editor/Tests/
├── Runtime/Tests/
├── Samples~/ ← 7 samples
│ ├── BasicRouting/
│ ├── KeepAlive/
│ ├── Guards/
│ ├── Modal/
│ ├── AdvancedRouting/
│ ├── RouteLink/
│ └── FullDemo/