useSSRContext() SSR コンテキストへのアクセス
最終更新:2026-10-22
useSSRContext() SSR コンテキストへのアクセス
useSSRContext() はサーバーレンダリング中にコンテキストオブジェクトを取得します。クライアントのハイドレーション時に再利用するデータを載せるために使います。
| グループ | レンダー関数と SSR |
|---|---|
| 種類 | API |
| スコープ | コンポーネント内 |
| Vue バージョン | 3.0+ |
| SSR 対応 | 対応 |
📝 構文
import { useSSRContext } from "vue"
const ctx = useSSRContext()
ctx.state = { user: "Ana" }
戻り値:SSR コンテキストオブジェクト(サーバー側のみ値あり)
▶ 例
以下のコードを編集して結果を確認しましょう:
出力:
Shows the SSR notice.
💡 ポイント
ℹ️ 補足 サーバーレンダリングの流れの中でのみ値を持ちます。クライアントでは常に null チェックを行ってください。
💡 ヒント 典型的な使い方:事前取得したデータを ctx に載せてテンプレート内にインライン出力し、クライアントが読み取ってハイドレーションします。
⚠️ 注意 コンポーネントのトップレベルで同期的にアクセスしないでください(undefined の可能性があります)。必要に応じて null チェックをして使います。
🏷️ 関連レンダー関数と SSR
💡 関連ケース
関連ケースは近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q クライアントでエラーになりますか?
A なりません。undefined が返るため、自分で null チェックが必要です。
Q Pinia の状態との関係は?
A SSR 時に store のスナップショットを ctx に載せ、クライアントの初期化時に読み取ります。
Q 関数を保存できますか?
A シリアライズ可能なデータ(JSON で扱えるもの)だけを保存することをおすすめします。