0

わかりました、この質問は、古典的な HTML と JavaScript の組み合わせの基本についての誤解を明らかにするかもしれませんが、ここでは...

同形の Javascript の概念を利用する (比較的) シンプルなアプリがあり、最初にサーバー側でレンダリングされ、次にブラウザーでレンダリングされるとします。たとえば、これは次のとおりです。

https://github.com/jesstelford/react-isomorphic-boilerplate

アプリは最初に次のサーバー側をレンダリングします (res.send() 経由)。

<!doctype html>
<html lang="">
  <body>
    <div id="content">{{{content}}}</div>
    <script src="js/bundle.js"></script>
  </body>
</html>

コンテンツの口ひげには、いくつかの React コードが含まれています。

次にブラウザは、スクリプト タグ内のブラウザ化されたバンドルを取得します (まったく同じ React コードが含まれています)。React は明らかに状態に変化がないことを認識しているため、DOM を再レンダリングしません。ページはすばやく読み込まれ、ユーザーには変化が見られません (フラッシュなし)。

ただし、私の質問は次のとおりです。レンダリングされた DOM 要素が 1 回しか表示されないのはなぜですか?

上記の HTML で 2 回 (div 行と script 行で) 表示されていることを考えると、2 回表示されると思います。代わりに、ブラウザのバージョンは、サーバーでレンダリングされたバージョンを単に置き換えます。これは明らかに非常に便利な効果ですが、なぜこのように動作するのかを誰かが説明してくれれば幸いです。

ありがとうございました

4

0 に答える 0