renderToString() サーバーレンダリングによる文字列化

最終更新:2026-10-22

renderToString() サーバーレンダリングによる文字列化

renderToString() は Node のサーバー側でアプリを HTML 文字列にレンダリングします。SSR の出力工程で、クライアントでは createSSRApp と組み合わせてハイドレーションします。

グループレンダー関数と SSR
種類API
スコープグローバル
Vue バージョン3.0+
SSR 対応対応

📝 構文

import { renderToString } from "vue/server-renderer"
const html = await renderToString(app)

⚙️ 引数

app, context?アプリインスタンス(SSR context などのコンテキストオブジェクトを渡せます)

戻り値:Promise:完全な HTML 文字列

▶ 例

以下のコードを編集して結果を確認しましょう:

出力:

Shows the SSR notice (real rendering happens in Node).

💡 ポイント

ℹ️ 補足 vue/server-renderer から import します。Node 端の SSR 専用で、ブラウザでは使えません。
💡 ヒント onServerPrefetch によるデータの事前取得、useSSRContext によるコンテキストの受け渡しと組み合わせます。
⚠️ 注意 SSR ではコンポーネントが window/document にアクセスできません。アクセスするとサーバー側で即座にエラーになります。
関連ケースは近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q ブラウザでも使えますか?
A 使えません。server-renderer は Node 用パッケージです。
Q Nuxt との関係は?
A Nuxt 内部はまさにこの仕組み(renderToString + ハイドレーション)のラッパーです。
Q 出力には何を含めるべきですか?
A ページの HTML + シリアライズされた状態。クライアントのハイドレーション時に再利用されます。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%