Context コンテキスト
NocoBase では、コンテキスト(Context) はプラグインコードと NocoBase の機能をつなぐ橋渡し役です。コンテキストを通じて、リクエスト送信、国際化、ログ出力、ページナビゲーションなどが行えます。
コンテキストには2つのアクセス方法があります:
- Plugin 内:
this.context - React コンポーネント内:
useFlowContext()(@nocobase/flow-engineからインポート)
これら2つが返すのは同一のオブジェクト(FlowEngineContext インスタンス)であり、使用シーンが異なるだけです。
Plugin 内での使用
プラグインの load() などのライフサイクルメソッド内で、this.context 経由でアクセスします:
コンポーネント内での使用
React コンポーネント内では、useFlowContext() で同じコンテキストオブジェクトを取得します:
Plugin ショートカットプロパティ vs ctx プロパティ
Plugin クラスにはいくつかのショートカットプロパティがあり、load() 内で便利に使えます。ただし、Plugin クラスのショートカットプロパティと ctx 上の同名プロパティが異なるものを指す場合があるので注意が必要です:
最も混乱しやすいのは this.router と ctx.router です:
this.router(Plugin ショートカットプロパティ)→ RouterManager、ルートの登録に使用(.add())ctx.router(コンテキストプロパティ)→ React Router インスタンス、ページナビゲーションに使用(.navigate())
コンテキストが提供する共通機能
ここでは主な機能を一覧にしますが、一部は Plugin でのみ利用可能、一部はコンポーネントでのみ利用可能、一部は両方で使えるが書き方が異なります。
各機能の詳しい使い方とコード例は共通機能をご覧ください。
関連リンク
- 共通機能 — ctx.api、ctx.t、ctx.logger などの詳しい使い方
- Plugin プラグイン — プラグインエントリとショートカットプロパティ
- Component コンポーネント開発 — コンポーネントでの useFlowContext の基本的な使い方

