ctx.router
基于 React Router 的路由实例,用于在 RunJS 中通过代码进行导航。通常与 ctx.route、ctx.location 配合使用。
适用场景
注意:
ctx.router仅在存在路由上下文的 RunJS 环境中可用(如页面内的 JSBlock、Flow 页面、事件流等);在纯后端或无路由的上下文(如工作流)中可能为空。
类型定义
Router 来自 @remix-run/router,在 RunJS 中通过 ctx.router.navigate() 实现跳转、后退、刷新等导航操作。
方法
ctx.router.navigate()
跳转到目标路径,或执行后退/刷新。
签名:
参数:
to:目标路径(string)、相对历史位置(number,如-1表示后退)或null(刷新当前页)options:可选配置replace?: boolean:是否替换当前历史记录(默认false,即 push 新记录)state?: any:传递给目标路由的 state。该数据不会出现在 URL 中,可在目标页通过ctx.location.state访问,适用于敏感信息、临时数据或不宜放在 URL 中的信息
示例
基础跳转
替换历史(无新增记录)
传递 state
后退与刷新
与 ctx.route、ctx.location 的关系
ctx.router 负责「导航动作」,ctx.route 和 ctx.location 负责「当前路由状态」。
注意
navigate(path)默认会 push 新历史记录,用户可通过浏览器后退返回replace: true会替换当前历史记录而不新增,适用于登录后重定向、提交成功跳转等场景- 关于
state参数:- 通过
state传递的数据不会出现在 URL 中,适合敏感或临时数据 - 在目标页可通过
ctx.location.state访问 state会保存在浏览器历史中,前进/后退时仍可访问- 刷新页面后
state会丢失
- 通过
相关
- ctx.route:当前路由匹配信息(pathname、params 等)
- ctx.location:当前 URL 位置(pathname、search、hash、state),跳转后
state在此读取

