logologo
Start
Handbuch
Entwicklung
Plugins
API
Startseite
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Start
Handbuch
Entwicklung
Plugins
API
Startseite
logologo
RunJS Übersicht
Module importieren
Rendern im Container

Globale Variablen

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
KI-Übersetzungshinweis

Dieses Dokument wurde von KI übersetzt. Für genaue Informationen lesen Sie bitte die englische Version.

#ctx.makeResource()

Erstellt eine neue Resource-Instanz und gibt diese zurück, ohne ctx.resource zu beschreiben oder zu verändern. Dies eignet sich für Szenarien, die mehrere unabhängige Ressourcen oder eine temporäre Nutzung erfordern.

#Anwendungsfälle

SzenarioBeschreibung
Mehrere RessourcenGleichzeitiges Laden mehrerer Datenquellen (z. B. Benutzerliste + Bestellliste), wobei jede eine unabhängige Resource verwendet.
Temporäre AbfragenEinmalige Abfragen, die nach der Verwendung verworfen werden, ohne dass eine Bindung an ctx.resource erforderlich ist.
HilfsdatenVerwendung von ctx.resource für Primärdaten und makeResource zur Erstellung von Instanzen für zusätzliche Daten.

Wenn Sie nur eine einzelne Resource benötigen und diese an ctx.resource binden möchten, ist die Verwendung von ctx.initResource() besser geeignet.

#Typdefinition

makeResource<T = FlowResource>(
  resourceType: 'APIResource' | 'SingleRecordResource' | 'MultiRecordResource' | 'SQLResource'
): T;
ParameterTypBeschreibung
resourceTypestringRessourcentyp: 'APIResource', 'SingleRecordResource', 'MultiRecordResource', 'SQLResource'

Rückgabewert: Die neu erstellte Resource-Instanz.

#Unterschied zu ctx.initResource()

MethodeVerhalten
ctx.makeResource(type)Erstellt und gibt nur eine neue Instanz zurück, schreibt nicht in ctx.resource. Kann mehrfach aufgerufen werden, um mehrere unabhängige Ressourcen zu erhalten.
ctx.initResource(type)Erstellt und bindet die Instanz, falls ctx.resource nicht existiert; gibt sie direkt zurück, falls sie bereits vorhanden ist. Stellt sicher, dass ctx.resource verfügbar ist.

#Beispiele

#Einzelne Resource

const listRes = ctx.makeResource('MultiRecordResource');
listRes.setResourceName('users');
await listRes.refresh();
const users = listRes.getData();
// ctx.resource behält seinen ursprünglichen Wert (falls vorhanden)

#Mehrere Ressourcen

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>Benutzeranzahl: {usersRes.getData().length}</p>
    <p>Bestellanzahl: {ordersRes.getData().length}</p>
  </div>
);

#Temporäre Abfrage

// Einmalige Abfrage, verunreinigt ctx.resource nicht
const tempRes = ctx.makeResource('SingleRecordResource');
tempRes.setResourceName('users');
tempRes.setFilterByTk(1);
await tempRes.refresh();
const record = tempRes.getData();

#Hinweise

  • Die neu erstellte Resource muss setResourceName(name) aufrufen, um die Sammlung zu spezifizieren, und anschließend die Daten über refresh() laden.
  • Jede Resource-Instanz ist unabhängig und beeinflusst andere nicht; dies ist ideal für das parallele Laden mehrerer Datenquellen.

#Verwandte Themen

  • ctx.initResource(): Initialisieren und an ctx.resource binden
  • ctx.resource: Die Resource-Instanz im aktuellen Kontext
  • MultiRecordResource — Mehrere Datensätze/Liste
  • SingleRecordResource — Einzelner Datensatz
  • APIResource — Allgemeine API-Ressource
  • SQLResource — SQL-Abfrageressource