跳转到内容

SusRouter — 文档

Package: com.sharq-it.sus.router
Version: 1.0.16

SUS UI 路由器 — Vue Router 的对应实现:导航、screen、模态框、KeepAlive、过渡

目录

#文档内容
1包概览用途、范围、生态系统、版本管理
2SusRouter APICore:Register、Push、Replace、Back、Forward,具名/嵌套,redirect、alias、query、lazy
3SusScreen — 生命周期基类,钩子(BeforeEnter/Entered/BeforeLeave/Left/BeforeRouteUpdate),与 SusComponent 的集成
4SusRouteView + KeepAlive视觉容器、screen 切换、KeepAlive LRU 缓存、嵌套路由
5模态对话框SusRouterModal 基类,SusModalService:模态栈、DismissOnClickOutside
6Guard 与过渡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");

去哪里看

示例(Samples~/)

Chrome 使用纯粹的 Unity UI Toolkit(Button / Label / TextField / Toggle)。运行示例不需要下游 UI 包。

#示例路由器特性
1BasicRoutingPush、Replace、Back
2KeepAliveKeepAlive = true/false
3GuardsbeforeEach、CanEnter、CanLeave、beforeResolve
4Modals & TransitionsSusRouterModal、Fade/Slide、NavigateWithTransition
5Nested & Namedchildren、PushNamed、:id、?q=、alias、redirect、lazy
6RouteLinkSusRouteLink、router-link-active
7Full Demo全部功能 + theming

相关文档