logologo
Começar
Manual
Desenvolvimento
Plugins
API
Início
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Começar
Manual
Desenvolvimento
Plugins
API
Início
logologo
Visão geral do RunJS
Importando módulos
Renderização no contêiner

Variáveis globais

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
Aviso de tradução por IA

Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.

#ctx.location

Informações de localização da rota atual, equivalente ao objeto location do React Router. Geralmente é usado em conjunto com ctx.router e ctx.route para ler o caminho atual, string de consulta (query string), hash e o estado (state) passado através da rota.

#Cenários de uso

CenárioDescrição
JSBlock / JSFieldRealiza renderização condicional ou ramificação lógica com base no caminho atual, parâmetros de consulta ou hash.
Regras de vinculação / Fluxo de eventosLê parâmetros de consulta da URL para filtragem vinculada ou determina a origem com base em location.state.
Processamento pós-navegaçãoRecebe dados passados da página anterior via ctx.router.navigate usando ctx.location.state na página de destino.

Nota: ctx.location está disponível apenas em ambientes RunJS com um contexto de roteamento (ex: JSBlock dentro de uma página, fluxos de eventos, etc.); pode ser nulo em contextos puramente de backend ou sem roteamento (ex: fluxos de trabalho).

#Definição de tipo

location: Location;

Location vem de react-router-dom, consistente com o valor de retorno de useLocation() do React Router.

#Campos comuns

CampoTipoDescrição
pathnamestringO caminho atual, começando com / (ex: /admin/users).
searchstringA string de consulta, começando com ? (ex: ?page=1&status=active).
hashstringO fragmento hash, começando com # (ex: #section-1).
stateanyDados arbitrários passados via ctx.router.navigate(path, { state }), não refletidos na URL.
keystringUm identificador único para esta localização; a página inicial é "default".

#Relação com ctx.router e ctx.urlSearchParams

FinalidadeUso recomendado
Ler caminho, hash, statectx.location.pathname / ctx.location.hash / ctx.location.state
Ler parâmetros de consulta (como objeto)ctx.urlSearchParams, que fornece o objeto analisado diretamente.
Analisar string de buscanew URLSearchParams(ctx.location.search) ou use ctx.urlSearchParams diretamente.

ctx.urlSearchParams é analisado a partir de ctx.location.search. Se você precisar apenas dos parâmetros de consulta, usar ctx.urlSearchParams é mais conveniente.

#Exemplos

#Ramificação com base no caminho

if (ctx.location.pathname.startsWith('/admin/users')) {
  ctx.message.info('Atualmente na página de gerenciamento de usuários');
}

#Analisando parâmetros de consulta

// Método 1: Usando ctx.urlSearchParams (Recomendado)
const page = ctx.urlSearchParams.page || 1;
const status = ctx.urlSearchParams.status;

// Método 2: Usando URLSearchParams para analisar a busca
const params = new URLSearchParams(ctx.location.search);
const page = params.get('page') || '1';
const status = params.get('status');

#Recebendo estado passado via navegação de rota

// Ao navegar da página anterior: ctx.router.navigate('/users/123', { state: { from: 'dashboard' } })
const prevState = ctx.location.state;
if (prevState?.from === 'dashboard') {
  ctx.message.info('Navegou a partir do painel (dashboard)');
}

#Localizando âncoras via hash

const hash = ctx.location.hash; // ex: "#edit"
if (hash === '#edit') {
  // Rolar para a área de edição ou executar a lógica correspondente
}

#Relacionado

  • ctx.router: Navegação de rota; o state de ctx.router.navigate pode ser recuperado via ctx.location.state na página de destino.
  • ctx.route: Informações de correspondência da rota atual (parâmetros, configuração, etc.), frequentemente usado em conjunto com ctx.location.