Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
Instancia de enrutador basada en React Router, utilizada para la navegación mediante código dentro de RunJS. Generalmente se utiliza en conjunto con ctx.route y ctx.location.
| Escenario | Descripción |
|---|---|
| JSBlock / JSField | Navegar a páginas de detalles, páginas de lista o enlaces externos tras hacer clic en un botón. |
| Reglas de enlace / Flujo de eventos | Ejecutar navigate hacia una lista o detalle después de un envío exitoso, o pasar un state a la página de destino. |
| JSAction / Manejo de eventos | Ejecutar la navegación de rutas dentro de la lógica de envíos de formularios o clics en enlaces. |
| Navegación de vistas | Actualizar la URL a través de navigate durante el cambio de la pila de vistas internas. |
Nota:
ctx.routersolo está disponible en entornos RunJS que cuenten con un contexto de enrutamiento (por ejemplo, JSBlock dentro de una página, páginas de flujo, flujos de eventos, etc.); puede ser nulo en contextos puramente de backend o sin enrutamiento (como los flujos de trabajo).
Router proviene de @remix-run/router. En RunJS, las operaciones de navegación como saltar, retroceder y actualizar se implementan a través de ctx.router.navigate().
Navega hacia una ruta de destino o ejecuta una acción de retroceso/actualización.
Firma:
Parámetros:
to: Ruta de destino (string), posición relativa en el historial (number, por ejemplo, -1 para retroceder) o null (para actualizar la página actual).options: Configuración opcional.
replace?: boolean: Indica si se debe reemplazar la entrada actual en el historial (el valor predeterminado es false, lo que añade una nueva entrada).state?: any: Estado que se pasará a la ruta de destino. Estos datos no aparecen en la URL y se puede acceder a ellos mediante ctx.location.state en la página de destino. Es adecuado para información sensible, datos temporales o información que no deba colocarse en la URL.| Propósito | Uso recomendado |
|---|---|
| Navegación / Salto | ctx.router.navigate(path) |
| Leer la ruta actual | ctx.route.pathname o ctx.location.pathname |
| Leer el state pasado durante la navegación | ctx.location.state |
| Leer los parámetros de la ruta | ctx.route.params |
ctx.router es responsable de las "acciones de navegación", mientras que ctx.route y ctx.location son responsables del "estado de la ruta actual".
navigate(path) añade una nueva entrada al historial por defecto, permitiendo a los usuarios regresar mediante el botón de retroceso del navegador.replace: true reemplaza la entrada actual del historial sin añadir una nueva, lo cual es adecuado para escenarios como la redirección tras el inicio de sesión o la navegación tras un envío exitoso.state:
state no aparecen en la URL, lo que los hace adecuados para datos sensibles o temporales.ctx.location.state en la página de destino.state se guarda en el historial del navegador y permanece accesible durante la navegación hacia adelante o hacia atrás.state se perderá tras una actualización completa de la página.state se lee aquí después de la navegación.