logologo
Démarrer
Manuel
Développement
Plugins
API
Accueil
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Démarrer
Manuel
Développement
Plugins
API
Accueil
logologo
Présentation de RunJS
Importation de modules
Rendu dans le conteneur

Variables globales

window
document
navigator

ctx

ctx.blockModel
ctx.collection
ctx.collectionField
ctx.dataSource
ctx.dataSourceManager
ctx.element
ctx.exit()
ctx.exitAll()
ctx.filterManager
ctx.form
ctx.getModel()
ctx.getValue()
ctx.getVar()
ctx.i18n
ctx.importAsync()
ctx.initResource()
ctx.libs
ctx.location
ctx.logger
ctx.makeResource()
ctx.message
ctx.modal
ctx.model
ctx.notification
ctx.off()
ctx.on()
ctx.openView()
ctx.render()
ctx.request()
ctx.requireAsync()
ctx.resource
ctx.route
ctx.router
ctx.setValue()
ctx.sql
ctx.t()
ctx.view
Previous Pagectx.libs
Next Pagectx.logger
Avis de traduction IA

Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.

#ctx.location

Informations sur l'emplacement de la route actuelle, équivalent à l'objet location de React Router. Il est généralement utilisé en conjonction avec ctx.router et ctx.route pour lire le chemin actuel, la chaîne de requête (query string), le hash et l'état (state) transmis via la route.

#Scénarios d'utilisation

ScénarioDescription
JSBlock / JSFieldEffectuer un rendu conditionnel ou un branchement logique basé sur le chemin actuel, les paramètres de requête ou le hash.
Règles de liaison / Flux d'événementsLire les paramètres de requête URL pour le filtrage de liaison, ou déterminer la source en fonction de location.state.
Traitement après navigationRecevoir des données transmises depuis la page précédente via ctx.router.navigate en utilisant ctx.location.state sur la page cible.

Remarque : ctx.location est uniquement disponible dans les environnements RunJS disposant d'un contexte de routage (par exemple, JSBlock dans une page, flux d'événements, etc.) ; il peut être nul dans des contextes purement backend ou sans routage (comme les flux de travail).

#Définition du type

location: Location;

Location provient de react-router-dom, conformément à la valeur de retour de useLocation() de React Router.

#Champs courants

ChampTypeDescription
pathnamestringLe chemin actuel, commençant par / (ex : /admin/users).
searchstringLa chaîne de requête, commençant par ? (ex : ?page=1&status=active).
hashstringLe fragment de hash, commençant par # (ex : #section-1).
stateanyDonnées arbitraires transmises via ctx.router.navigate(path, { state }), non reflétées dans l'URL.
keystringUn identifiant unique pour cet emplacement ; la page initiale est "default".

#Relation avec ctx.router et ctx.urlSearchParams

UsageUtilisation recommandée
Lire le chemin, le hash, l'étatctx.location.pathname / ctx.location.hash / ctx.location.state
Lire les paramètres de requête (objet)ctx.urlSearchParams, qui fournit directement l'objet analysé.
Analyser la chaîne searchnew URLSearchParams(ctx.location.search) ou utiliser directement ctx.urlSearchParams.

ctx.urlSearchParams est analysé à partir de ctx.location.search. Si vous avez seulement besoin des paramètres de requête, l'utilisation de ctx.urlSearchParams est plus pratique.

#Exemples

#Branchement basé sur le chemin

if (ctx.location.pathname.startsWith('/admin/users')) {
  ctx.message.info('Actuellement sur la page de gestion des utilisateurs');
}

#Analyse des paramètres de requête

// Méthode 1 : Utilisation de ctx.urlSearchParams (Recommandé)
const page = ctx.urlSearchParams.page || 1;
const status = ctx.urlSearchParams.status;

// Méthode 2 : Utilisation de URLSearchParams pour analyser search
const params = new URLSearchParams(ctx.location.search);
const page = params.get('page') || '1';
const status = params.get('status');

#Réception de l'état transmis via la navigation

// Lors de la navigation depuis la page précédente : ctx.router.navigate('/users/123', { state: { from: 'dashboard' } })
const prevState = ctx.location.state;
if (prevState?.from === 'dashboard') {
  ctx.message.info('Navigué depuis le tableau de bord');
}

#Localisation d'ancres via le hash

const hash = ctx.location.hash; // ex : "#edit"
if (hash === '#edit') {
  // Faire défiler jusqu'à la zone d'édition ou exécuter la logique correspondante
}

#Relatif

  • ctx.router : Navigation de route ; le state de ctx.router.navigate peut être récupéré via ctx.location.state sur la page cible.
  • ctx.route : Informations de correspondance de la route actuelle (paramètres, configuration, etc.), souvent utilisées en conjonction avec ctx.location.