renderToStaticMarkup
renderToStaticMarkup
は、非インタラクティブな React ツリーを HTML 文字列にレンダーします。
const html = renderToStaticMarkup(reactNode)
リファレンス
renderToStaticMarkup(reactNode)
サーバ上で、renderToStaticMarkup
を呼び出してアプリを HTML にレンダーします。
import { renderToStaticMarkup } from 'react-dom/server';
const html = renderToStaticMarkup(<Page />);
これにより、React コンポーネントの非インタラクティブな HTML 出力が生成されます。
引数
reactNode
: HTML にレンダーしたい React ノード。例えば、<Page />
のような JSX ノード。
返り値
HTML 文字列。
注意点
-
renderToStaticMarkup
の出力に対してハイドレーションは行えません。 -
renderToStaticMarkup
のサスペンスに対するサポートは限定的です。コンポーネントがサスペンドすると、renderToStaticMarkup
はそのフォールバックを HTML として直ちに送信します。 -
renderToStaticMarkup
はブラウザで動作しますが、クライアントコードでの使用は推奨されません。ブラウザでコンポーネントを HTML にレンダーする必要がある場合は、DOM ノードにレンダーしてその HTML を取得してください。
使用法
非インタラクティブな React ツリーを HTML として文字列にレンダーする
renderToStaticMarkup
を呼び出して、アプリをサーバのレスポンスとして送信できる HTML 文字列にレンダーします。
import { renderToStaticMarkup } from 'react-dom/server';
// The route handler syntax depends on your backend framework
app.use('/', (request, response) => {
const html = renderToStaticMarkup(<Page />);
response.send(html);
});
これにより、React コンポーネントの非インタラクティブな初期 HTML 出力が生成されます。