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 出力が生成されます。