[解決済み] React 16のhydrate()とrender()の違いは何ですか?
2022-10-17 14:16:18
質問
ドキュメントを読んでみたのですが、hydrate()
と
render()
をReact 16に追加しました。
私が知っているのは
hydrate()
は、SSRとクライアントサイドレンダリングを組み合わせるために使われます。
誰かハイドレーティングとは何か、それからReactDOMでは何が違うのか説明してくれませんか?
どのように解決するのですか?
からの ReactDOMServer docsから(強調は私)。
もし、あなたが
ReactDOM.hydrate()
を呼び出すと、すでにこのサーバレンダリングされたマークアップを持つノード上で を呼び出すと、React はそれを保持し、イベントハンドラのみを添付します。 で、非常にパフォーマンスの高いファーストロードを体験することができます。
太字のテキストが主な相違点です。
render
は、初期DOMと現在のDOMに差異がある場合、ノードを変更することがあります。
hydrate
はイベントハンドラのみをアタッチします。
から
を導入した Github issue から
hydrate
を別の API として導入しました。
:
これが初期DOMの場合。
<div id="container">
<div class="spinner">Loading...</div>
</div>
<ブロッククオート
を呼び出して
ReactDOM.render(
<div class="myapp">
<span>App</span>
</div>,
document.getElementById('container')
)
<ブロッククオート
は、クライアントサイドのみのレンダリング(ハイドレーションではない)を意図しています。 そして、最後に
<div id="container">
<div class="spinner">
<span>App</span>
</div>
</div>
<ブロッククオート
属性をパッチしないので。
参考までに属性にパッチを当てない理由は
... これは、通常のハイドレーション モードでのハイドレーションに非常に時間がかかり、非 SSR ツリーへの最初のレンダリングが遅くなります。
関連
-
[解決済み】event.stopPropagationとevent.preventDefaultの違いは何ですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Bowerとnpmの違いは何ですか?
-
[解決済み] React NativeとReactの違いは何ですか?
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)
-
[解決済み] HTML要素にスクロールバーがあるかどうかをチェックする
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ