用語解説

Hydrationとは?HTML共有・AI生成サイトでの意味をやさしく解説

AIが生成したWebページをプレビュー共有すると、表示はされるのにボタンが反応しない、フォームを入力できないといったトラブルに遭遇することがある。この現象の多くはHydrationの仕組みと深く関係している。静的HTMLとJavaScriptのインタラクティブな機能が結びつくプロセスを理解すれば、共有時の不具合原因を素早く特定できる。

ひとことで言うと

HydrationとはSSR(サーバーサイドレンダリング)で生成した静的HTMLに対して、クライアント側のJavaScriptがイベントリスナーや状態管理を後から付与し、インタラクティブなページに「蘇らせる」プロセスのことだ。見た目は即座に表示されるが、Hydration完了前はクリックしても何も起きない。

Next.jsやNuxt、SvelteKitなどのフレームワークはHydrationを自動で行う。AI生成ツールがこれらを使って出力したコードをHTMLとして書き出した場合、Hydrationに必要なJSバンドルが欠けると「見えるが動かない」ページになる。

  • 相手がログインなしで開ける状態か確認する
  • PCとスマホで最低1回ずつ表示を確認する
  • 内部情報・個人情報・不要な外部送信が残っていないか見る
  • レビュー期限と修正時の差し替え方を決めておく

HTML共有で関係する場面

Next.jsで`next export`したフォルダを共有する際、`_next/static/`以下のJSが含まれていないとHydrationが走らない。表示は正常でもカルーセルやアコーディオンが機能しないため、受け取った相手は「壊れている」と判断してしまう。フォルダ全体をzipする前に`_next/`ディレクトリが含まれているか確認すること。

ギガサイト便のようなHTTPS配信ではフォルダ構造を保ったままアップロードできるため、Hydrationに必要なJSパスが維持される。一方でCloudinaryなど画像専用CDNにHTMLをアップロードしてURLを共有する方法は、JSバンドルを別途配置できずHydrationが失敗する典型的なミスだ。

よくある誤解

「ページが表示されたからHydrationは成功している」と思いがちだが、これは誤りだ。SSRで生成したHTMLはJS抜きで表示できるよう設計されており、Hydrationが走っていなくてもテキストや画像は見える。ブラウザのコンソールに`Hydration mismatch`エラーがないかを確認する習慣が重要だ。

「Hydrationは常に高速に完了する」という思い込みも危険だ。共有先のネットワーク環境が遅い場合、JSバンドルのダウンロードに数秒かかりHydration待ちが生じる。特にモバイル回線でのレビューを求める場合は、バンドルサイズを事前に確認しておくべきだ。

安全に使うための注意点

Hydrationの過程でクライアント側JSがAPIへのリクエストを自動実行する場合がある。開発環境のAPIエンドポイントやテスト用のトークンがコードに残っていると、共有相手のブラウザからそのAPIが呼ばれてしまう。共有前にネットワークタブで自動発火するリクエストをすべて確認する。

HydrationエラーはSSRとCSRの描画結果の不一致で発生する。AI生成コードには`Math.random()`や`Date.now()`をレンダリング中に使うパターンが含まれることがあり、これがHydration mismatchを引き起こす。共有前にブラウザコンソールのエラーをゼロにしてから渡すと、受け取った側の混乱を防げる。

よくある質問

Hydrationが完了するまでの間、ユーザーに何か操作させないようにする方法はありますか?

Next.jsでは`loading.tsx`やSkeletonコンポーネントを使い、Hydration前にローディング表示を出す方法が一般的です。共有用プレビューなら操作がないため問題になりにくいですが、本番公開前には対処を検討してください。

AI生成のReactコードをHTML単体ファイルとして書き出すことはできますか?

Reactは通常バンドルが必要ですが、CDN版React+BabelをscriptタグでHTMLに埋め込めばHTMLファイル一枚で動きます。ただしパフォーマンスは劣るため、レビュー用途の一時共有に限って使う方法です。

Hydration mismatchエラーが出ても見た目は正常なのに、修正しないといけませんか?

社内レビュー用の一時共有なら即時対応は不要ですが、本番公開前には必ず修正すべきです。mismatchはReactが強制的にDOMを再構築し、予期しないちらつきやSEO問題を引き起こす場合があります。

関連記事

「用語解説」の記事をもっと見る →