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.logger
Next Pagectx.message
Aviso de tradução por IA

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

#ctx.makeResource()

Cria e retorna uma nova instância de recurso (resource) sem gravar ou modificar ctx.resource. É adequado para cenários que exigem múltiplos recursos independentes ou uso temporário.

#Casos de Uso

CenárioDescrição
Múltiplos recursosCarregar múltiplas fontes de dados simultaneamente (ex: lista de usuários + lista de pedidos), cada uma usando um recurso independente.
Consultas temporáriasConsultas únicas que são descartadas após o uso, sem necessidade de vincular ao ctx.resource.
Dados auxiliaresUse ctx.resource para os dados principais e makeResource para criar instâncias para dados adicionais.

Se você precisar de apenas um único recurso e quiser vinculá-lo ao ctx.resource, usar ctx.initResource() é mais apropriado.

#Definição de Tipo

makeResource<T = FlowResource>(
  resourceType: 'APIResource' | 'SingleRecordResource' | 'MultiRecordResource' | 'SQLResource'
): T;
ParâmetroTipoDescrição
resourceTypestringTipo de recurso: 'APIResource', 'SingleRecordResource', 'MultiRecordResource', 'SQLResource'

Retorno: A instância de recurso recém-criada.

#Diferença em relação ao ctx.initResource()

MétodoComportamento
ctx.makeResource(type)Apenas cria e retorna uma nova instância, não gravando em ctx.resource. Pode ser chamado várias vezes para obter múltiplos recursos independentes.
ctx.initResource(type)Cria e vincula se ctx.resource não existir; retorna-o diretamente se já existir. Garante que ctx.resource esteja disponível.

#Exemplos

#Recurso único

const listRes = ctx.makeResource('MultiRecordResource');
listRes.setResourceName('users');
await listRes.refresh();
const users = listRes.getData();
// ctx.resource permanece com seu valor original (se houver)

#Múltiplos recursos

const usersRes = ctx.makeResource('MultiRecordResource');
usersRes.setResourceName('users');
await usersRes.refresh();

const ordersRes = ctx.makeResource('MultiRecordResource');
ordersRes.setResourceName('orders');
await ordersRes.refresh();

ctx.render(
  <div>
    <p>Contagem de usuários: {usersRes.getData().length}</p>
    <p>Contagem de pedidos: {ordersRes.getData().length}</p>
  </div>
);

#Consulta temporária

// Consulta única, não polui o ctx.resource
const tempRes = ctx.makeResource('SingleRecordResource');
tempRes.setResourceName('users');
tempRes.setFilterByTk(1);
await tempRes.refresh();
const record = tempRes.getData();

#Observações

  • O recurso recém-criado precisa chamar setResourceName(name) para especificar a coleção e, em seguida, carregar os dados via refresh().
  • Cada instância de recurso é independente e não afeta as outras; adequado para carregar múltiplas fontes de dados em paralelo.

#Relacionados

  • ctx.initResource(): Inicializa e vincula ao ctx.resource
  • ctx.resource: A instância de recurso no contexto atual
  • MultiRecordResource — Múltiplos registros/Lista
  • SingleRecordResource — Registro único
  • APIResource — Recurso de API geral
  • SQLResource — Recurso de consulta SQL