AI翻訳通知
このドキュメントはAIによって翻訳されました。正確な情報については英語版をご参照ください。
ctx.router
React Router に基づいたルーティングインスタンスです。RunJS 内でコードを使用してナビゲーションを行うために使用されます。通常、ctx.route や ctx.location と組み合わせて使用します。
適用シーン
注意:
ctx.routerは、ルーティングコンテキストが存在する RunJS 環境(ページ内の JSBlock、フローページ、イベントフローなど)でのみ利用可能です。純粋なバックエンドやルーティングのないコンテキスト(ワークフローなど)では、nullになる可能性があります。
型定義
Router は @remix-run/router に由来します。RunJS では、ctx.router.navigate() を通じて遷移、戻る、リフレッシュなどのナビゲーション操作を実現します。
メソッド
ctx.router.navigate()
ターゲットパスへの遷移、または「戻る」・「リフレッシュ」を実行します。
シグネチャ:
パラメータ:
to:ターゲットパス(string)、履歴の相対位置(number、例:-1は戻る )、またはnull(現在のページをリフレッシュ)。options:オプション設定。replace?: boolean:現在の履歴エントリを置き換えるかどうか(デフォルトはfalseで、新しいエントリを push します)。state?: any:遷移先ルートに渡すstate。このデータは URL には表示されず、遷移先ページでctx.location.stateを介してアクセスできます。機密情報、一時的なデータ、または URL に含めるのが適切でない情報に適しています。
実行例
基礎的な遷移
履歴の置換(新規エントリなし)
state の受け渡し
戻るとリフレッシュ
ctx.route、ctx.location との関係
ctx.router は「ナビゲーション動作」を担当し、ctx.route と ctx.location は「現在のルート状態」を担当します。
注意事項
navigate(path)はデフォルトで新しい履歴エントリを push するため、ユーザーはブラウザの戻るボタンで戻ることができます。replace: trueは新しいエントリを追加せずに現在の履歴を置き換えます。ログイン後のリダイレクトや送信成功後の遷移などに適しています。- state パラメータについて:
state経由で渡されるデータは URL に表示されないため、機密データや一時的なデータに適しています。- 遷移先ページでは
ctx.location.stateからアクセスできます。 stateはブラウザの履歴に保存されるため、進む・戻る操作を行ってもアクセス可能です。- ページをリフレッシュすると
stateは失われます。
関連情報
- ctx.route:現在のルート一致情報(pathname、params など)
- ctx.location:現在の URL 位置(pathname、search、hash、state)。遷移後の
stateはこちらで読み取ります。

