Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
Uma instância de roteador baseada no React Router, usada para navegação programática dentro do RunJS. Geralmente é utilizada em conjunto com ctx.route e ctx.location.
| Cenário | Descrição |
|---|---|
| JSBlock / JSField | Navegar para páginas de detalhes, páginas de lista ou links externos após o clique em um botão. |
| Regras de Vinculação / Fluxo de Eventos | Executar navigate para uma lista ou detalhe após uma submissão bem-sucedida, ou passar um state para a página de destino. |
| JSAction / Manipulação de Eventos | Executar a navegação de rota dentro de lógicas como submissões de formulários ou cliques em links. |
| Navegação de Visualização | Atualizar a URL via navigate durante a troca da pilha de visualização interna. |
Nota: O
ctx.routerestá disponível apenas em ambientes RunJS que possuem um contexto de roteamento (ex: JSBlock dentro de uma página, páginas de Fluxo, fluxos de eventos, etc.); ele pode ser nulo em contextos puramente de backend ou sem roteamento (ex: Fluxos de trabalho).
O Router é derivado do @remix-run/router. No RunJS, operações de navegação como ir para uma página, voltar e atualizar são implementadas via ctx.router.navigate().
Navega para um caminho de destino ou executa uma ação de voltar/atualizar.
Assinatura:
Parâmetros:
to: Caminho de destino (string), posição relativa no histórico (number, ex: -1 para voltar) ou null (para atualizar a página atual).options: Configuração opcional.
replace?: boolean: Se deve substituir a entrada atual no histórico (o padrão é false, que adiciona uma nova entrada/push).state?: any: Estado a ser passado para a rota de destino. Estes dados não aparecem na URL e podem ser acessados via ctx.location.state na página de destino. É adequado para informações sensíveis, dados temporários ou informações que não devem ser colocadas na URL.| Finalidade | Uso Recomendado |
|---|---|
| Navegação/Salto | ctx.router.navigate(path) |
| Ler o caminho atual | ctx.route.pathname ou ctx.location.pathname |
| Ler o state passado durante a navegação | ctx.location.state |
| Ler parâmetros da rota | ctx.route.params |
O ctx.router é responsável pelas "ações de navegação", enquanto o ctx.route e o ctx.location são responsáveis pelo "estado da rota atual".
navigate(path) adiciona uma nova entrada no histórico por padrão, permitindo que os usuários retornem através do botão voltar do navegador.replace: true substitui a entrada atual do histórico sem adicionar uma nova, o que é adequado para cenários como redirecionamento pós-login ou navegação após submissão bem-sucedida.state:
state não aparecem na URL, tornando-os adequados para dados sensíveis ou temporários.ctx.location.state na página de destino.state é salvo no histórico do navegador e permanece acessível durante a navegação para frente/para trás.state será perdido após uma atualização forçada (refresh) da página.state é lido aqui após a navegação.