Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
Une instance de routeur basée sur React Router, utilisée pour la navigation par code au sein de RunJS. Elle est généralement utilisée en conjonction avec ctx.route et ctx.location.
| Scénario | Description |
|---|---|
| JSBlock / JSField | Naviguer vers des pages de détails, des listes ou des liens externes après un clic sur un bouton. |
| Règles de liaison / Flux d'événements | Exécuter navigate vers une liste ou un détail après une soumission réussie, ou transmettre un state à la page cible. |
| JSAction / Gestion d'événements | Exécuter la navigation au sein d'une logique telle que la soumission de formulaires ou les clics sur des liens. |
| Navigation de vue | Mettre à jour l'URL via navigate lors du basculement de la pile de vues interne. |
Remarque :
ctx.routerest uniquement disponible dans les environnements RunJS disposant d'un contexte de routage (par exemple, JSBlock dans une page, pages de flux, flux d'événements, etc.) ; il peut être nul dans des contextes purement backend ou sans routage (par exemple, les flux de travail).
Router provient de @remix-run/router. Dans RunJS, les opérations de navigation telles que l'accès à une page, le retour en arrière et le rafraîchissement sont implémentées via ctx.router.navigate().
Navigue vers un chemin cible, ou exécute une action de retour/rafraîchissement.
Signature :
Paramètres :
to : Chemin cible (string), position relative dans l'historique (number, par exemple -1 pour reculer), ou null (pour rafraîchir la page actuelle).options : Configuration optionnelle.
replace?: boolean : Indique s'il faut remplacer l'entrée actuelle de l'historique (la valeur par défaut est false, ce qui ajoute une nouvelle entrée).state?: any : État à transmettre à la route cible. Ces données n'apparaissent pas dans l'URL et sont accessibles via ctx.location.state sur la page cible. Cela convient aux informations sensibles, aux données temporaires ou aux informations qui ne devraient pas figurer dans l'URL.| Usage | Utilisation recommandée |
|---|---|
| Navigation / Saut | ctx.router.navigate(path) |
| Lire le chemin actuel | ctx.route.pathname ou ctx.location.pathname |
| Lire l'état transmis lors de la navigation | ctx.location.state |
| Lire les paramètres de la route | ctx.route.params |
ctx.router est responsable des « actions de navigation », tandis que ctx.route et ctx.location sont responsables de « l'état actuel de la route ».
navigate(path) ajoute par défaut une nouvelle entrée à l'historique, permettant aux utilisateurs de revenir via le bouton de retour du navigateur.replace: true remplace l'entrée actuelle de l'historique sans en ajouter de nouvelle, ce qui est approprié pour des scénarios tels que la redirection après connexion ou la navigation après une soumission réussie.state :
state n'apparaissent pas dans l'URL, ce qui les rend adaptées aux données sensibles ou temporaires.ctx.location.state sur la page cible.state est enregistré dans l'historique du navigateur et reste accessible lors de la navigation avant/arrière.state sera perdu après un rafraîchissement forcé de la page.state est lu ici après la navigation.