SusRouter — 文档
Package:
com.sharq-it.sus.router
Version: 1.0.16
SUS UI 路由器 — Vue Router 的对应实现:导航、screen、模态框、KeepAlive、过渡
目录
| # | 文档 | 内容 |
|---|---|---|
| 1 | 包概览 | 用途、范围、生态系统、版本管理 |
| 2 | SusRouter API | Core:Register、Push、Replace、Back、Forward,具名/嵌套,redirect、alias、query、lazy |
| 3 | SusScreen — 生命周期 | 基类,钩子(BeforeEnter/Entered/BeforeLeave/Left/BeforeRouteUpdate),与 SusComponent 的集成 |
| 4 | SusRouteView + KeepAlive | 视觉容器、screen 切换、KeepAlive LRU 缓存、嵌套路由 |
| 5 | 模态对话框 | SusRouterModal 基类,SusModalService:模态栈、DismissOnClickOutside |
| 6 | Guard 与过渡 | Guard 管道(beforeEach/CanEnter/CanLeave/BeforeResolve),SusRouteTransition(基于代码) |
| 7 | 运行示例 | 7 个示例:BasicRouting、KeepAlive、Guards、Modals、Nested+Named、RouteLink、FullDemo |
| 8 | 相对 Vue Router 的差距分析 | 阶段 A/B/C:已实现的内容,推迟的内容 |
| 9 | 术语表 | 术语:Record、Route、Guard、KeepAlive、Overlay、Props、Query |
| — | 快速入门(中文) | 中文快速入门(网站已翻译;包内副本:本目录下的 GETTING_STARTED.zh-CN.md) |
快速开始
推荐使用 SusApp + UseRouter:
csharp
using Sharq.Core;
using Sharq.Router;
SusApp.Create(uiDocument)
.UseTheme(SusTheme.Dark)
.UseRouter(new SusRouter(), r =>
{
r.Register("/home", typeof(HomeScreen));
r.Register("/settings", typeof(SettingsScreen),
new SusRouteConfig { KeepAlive = true, Transition = SusRouteTransition.Fade() });
r.BeforeEach((from, to) =>
{
Debug.Log($"[Router] {from.FullPath} → {to.FullPath}");
return true;
});
}, initialPath: "/home")
.Run();手动挂载(进阶):
csharp
var router = new SusRouter();
var overlayHost = SusBootstrap.GetOrCreateOverlay(root);
router.Init(overlayHost);
router.Register("/home", typeof(HomeScreen));
router.Register("/settings", typeof(SettingsScreen),
new SusRouteConfig { KeepAlive = true, Transition = SusRouteTransition.Fade() });
router.BeforeEach((from, to) =>
{
Debug.Log($"[Router] {from.FullPath} → {to.FullPath}");
return true;
});
router.Mount(root, "/home");去哪里看
- 理解路由器架构 → 01-overview.md 和 02-router-api.md
- 编写一个 screen → 03-susscreen.md
- 理解 KeepAlive → 04-routeview.md
- 构建一个模态框 → 05-modals.md
- 添加 guard/过渡 → 06-guards-transitions.md
- 运行示例 → 10-examples.md
示例(Samples~/)
Chrome 使用纯粹的 Unity UI Toolkit(Button / Label / TextField / Toggle)。运行示例不需要下游 UI 包。
| # | 示例 | 路由器特性 |
|---|---|---|
| 1 | BasicRouting | Push、Replace、Back |
| 2 | KeepAlive | KeepAlive = true/false |
| 3 | Guards | beforeEach、CanEnter、CanLeave、beforeResolve |
| 4 | Modals & Transitions | SusRouterModal、Fade/Slide、NavigateWithTransition |
| 5 | Nested & Named | children、PushNamed、:id、?q=、alias、redirect、lazy |
| 6 | RouteLink | SusRouteLink、router-link-active |
| 7 | Full Demo | 全部功能 + theming |
相关文档
- sus-core 指南 — core(响应式、OverlayHost、绑定)