SuperAPI AI 工具集

reactor-navigation

前端与建站

查看项目

更新于 10-16 00:31

技能介绍

用途:为 Reactor 应用提供基于栈的导航模型,路由以枚举或记录(discriminated union)定义,具备编译期类型安全。

主要能力:UseNavigation(Route.Home) 在根组件创建 NavigationHandle<Route>,子组件用 UseNavigation<Route>() 取同一句柄;NavigationHost(nav, route => ...) 渲染当前页。栈操作含 Navigate、GoBack、GoForward、Replace、Reset、PopTo,属性有 CurrentRoute、CanGoBack、CanGoForward、BackStack、ForwardStack、Depth。NavigationView 提供带图标的侧边栏,TabView 提供并行标签页。UseNavigationLifecycle 提供 onNavigatedTo、onNavigatingFrom(可 ctx.Cancel() 阻止离开)、onNavigatedFrom 回调。NavigationHost 可设 Transition(Entrance、Slide、Fade、DrillIn、Spring、None)与 CacheMode(Disabled、Enabled、Required)及 CacheSize。DeepLinkMap<Route> 支持 /literal、/{param}、/{param:int}、/{param?}、/{**} 与查询串,并可配 backStackFactory。nav.GetState()/SetState() 可序列化导航状态,配合 JsonSerializerContext 做 AOT 安全持久化。UseSystemBackButton(nav, window) 接入系统返回按钮。

用法要点:根处只调用一次 UseNavigation(initial);登出用 Reset 清栈;列表到详情用 DrillIn;深链接务必提供 backStackFactory,否则 GoBack 无效。

限制:导航变更方法默认线程安全,会捕获 UI 线程并自动调度;无活动 dispatcher(如无头或单元测试)或 dispatcher 已关闭时抛 InvalidOperationException;跨线程调用返回的 bool 仅表示已入队,不代表导航成功。其余细节暂未提供。