logologo
スタート
マニュアル
開発
プラグイン
API
ホーム
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
スタート
マニュアル
開発
プラグイン
API
ホーム
logologo
RunJS 概要
モジュールのインポート
コンテナ内でのレンダリング

グローバル変数

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
AI翻訳通知

このドキュメントはAIによって翻訳されました。正確な情報については英語版をご参照ください。

#ctx.makeResource()

新しい resource インスタンスを作成して返します。ctx.resource への書き込みや変更は行いません。複数の独立した resource が必要な場合や、一時的な使用に適しています。

#利用シーン

シーン説明
複数の resource複数のデータソース(ユーザーリスト + 注文リストなど)を同時に読み込む際、それぞれに独立した resource を使用します。
一時的なクエリ使い捨てのクエリで、ctx.resource にバインドする必要がない場合に使用します。
補助データメインデータには ctx.resource を使用し、追加データには makeResource で作成したインスタンスを使用します。

単一の resource のみが必要で、ctx.resource にバインドしたい場合は、ctx.initResource() を使用するのが適切です。

#型定義

makeResource<T = FlowResource>(
  resourceType: 'APIResource' | 'SingleRecordResource' | 'MultiRecordResource' | 'SQLResource'
): T;
引数型説明
resourceTypestringリソースタイプ:'APIResource'、'SingleRecordResource'、'MultiRecordResource'、'SQLResource'

戻り値:新しく作成された resource インスタンス。

#ctx.initResource() との違い

メソッド動作
ctx.makeResource(type)新しいインスタンスを作成して返すだけで、ctx.resource には書き込みません。複数回呼び出すことで、複数の独立した resource を取得できます。
ctx.initResource(type)ctx.resource が存在しない場合は作成してバインドし、既に存在する場合はそれを直接返します。ctx.resource が利用可能であることを保証します。

#例

#単一の resource

const listRes = ctx.makeResource('MultiRecordResource');
listRes.setResourceName('users');
await listRes.refresh();
const users = listRes.getData();
// ctx.resource は元の値のままです(存在する場合)

#複数の resource

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>ユーザー数:{usersRes.getData().length}</p>
    <p>注文数:{ordersRes.getData().length}</p>
  </div>
);

#一時的なクエリ

// 使い捨てのクエリ。ctx.resource を汚染しません
const tempRes = ctx.makeResource('SingleRecordResource');
tempRes.setResourceName('users');
tempRes.setFilterByTk(1);
await tempRes.refresh();
const record = tempRes.getData();

#注意事項

  • 新しく作成した resource は、setResourceName(name) を呼び出してコレクションを指定し、refresh() を実行してデータを読み込む必要があります。
  • 各 resource インスタンスは独立しており、互いに影響を与えません。複数のデータソースを並行して読み込むのに適しています。

#関連情報

  • ctx.initResource():初期化して ctx.resource にバインドする
  • ctx.resource:現在のコンテキストにおける resource インスタンス
  • MultiRecordResource — 複数レコード/リスト
  • SingleRecordResource — 単一レコード
  • APIResource — 汎用 API リソース
  • SQLResource — SQL クエリリソース