无感路由映射的核心是路由变更作为服务触发信号,通过异步非阻塞代理机制解耦路由与服务调用,实现自动唤醒、隔离执行、状态可观测及上下文快照,使ui始终可交互。

在低代码大屏系统中实现无感路由映射,关键不是让前端“感知不到跳转”,而是让路由切换与服务调用完全解耦、自动触发、异步执行且不影响 UI 响应。核心手段是引入异步非阻塞代理机制——它不拦截请求,也不等待结果,而是把路由变更作为信号,驱动后台服务按需拉起、执行、回填,整个过程对用户操作零干扰。
路由变更即服务触发信号
传统路由监听只做页面跳转或参数提取;而异步代理机制将路由视为“服务调度指令”:
- 当 URL 变为
/dashboard/org-123/chart?mode=realtime,中间件解析出$route.orgId = "org-123"和$route.mode = "realtime",立即广播该上下文变更事件 - 所有声明了
@DependsOn("$route.orgId")的 Callable 服务(如metrics.fetch)被自动唤醒,但不阻塞渲染线程 - 服务实例由代理按需创建并提交至隔离线程池,UI 渲染继续进行,无需等待数据返回
代理层统一接管服务生命周期
代理不是简单转发,而是承担契约管理、上下文快照、结果收敛三项职责:
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
- 每个 Callable 被包装为带元信息的代理对象:含
status(pending/fulfilled/rejected)、value、error三个可观测字段,直接暴露给模板引擎(如{{ $service.metrics.fetch().value }}) - 执行前自动注入当前
$route、$user、$env的不可变快照,避免异步执行期间上下文漂移 - 失败时默认返回空值或缓存值,并记录 trace_id,不抛异常中断渲染流
变量流驱动的懒加载与自动重连
无感的本质在于“按需响应”,而非“预先加载”:
- 服务仅在首次被模板引用(如插值表达式或计算属性依赖)时初始化,冷启动开销归零
- 若路由参数变化(如
$route.orgId从"org-123"切到"org-456"),代理自动取消旧任务、提交新任务,并复用已有连接池和缓存策略 - 支持声明式重试策略:例如
@Retry(maxAttempts=2, backoff="exponential"),失败后静默重试,UI 侧仅看到status短暂为 pending
不复杂但容易忽略:无感不是没有延迟,而是把延迟藏在变量状态里,让用户始终看到可交互界面。代理机制真正把“路由”从导航动作,变成了数据流的起点。










