web-dev-qa-db-ja.com

react.jsは静的なコンテンツ主導のサイトに意味がありますか?

DOMの操作が非常にスムーズでわかりやすいので、私はreact.jsモデルでかなり売れています。しかし、動かないテキストと画像の大きなブロックで大部分が静的であるサイトに、それがどのように活用されるのか疑問に思っています。邪魔になるだけですか?状態にテキストのKBが含まれるコンポーネントがあると、扱いにくいようです。

14
jiggy

あなたが何をしたいのかを知り、それからテクノロジーを選択してください。

その観点から見ると、React.jsはほとんど静的なWebにとってはやり過ぎのようです。

Reactのウェブサイトから:

React 1つの問題を解決するために構築しました:時間とともに変化するデータを使用して大規模なアプリケーションを構築します。

Reactは特定の釘のハンマーです。これは、ほとんど静的なWebサイトを作成する妨げになることを示しています。

10
Miyamoto Akira

React.renderToStaticMarkupのドキュメントで述べられているように、静的ページの生成は、Reactの予想される使用法です。

renderToStringと同様ですが、Reactが内部で使用するdata-react-idなどの追加のDOM属性を作成しない点が異なります。これは、Reactを単純な静的ページジェネレータとして使用する場合に役立ちます。余分な属性を取り除くことで、多くのバイトを節約できるためです。

一部の人はここで過剰反応を使用すると言いました。しかし、死んだものが欲しいときは、殺しすぎても問題ありません。このユースケースに必要な以上のことをreactが実行できるという事実は、reactに対する議論ではありません。

ただし、非同期コードを実行する場合は問題が発生する可能性があります。以下を想像してみましょう:

function SchoolClass({classId}) {
   const students = await query("SELECT name FROM student WHERE class = ?", classId);
   return <ul>
      {_.map(students, ({name}) => <li>{name}</li>}
   </ul>
}

ただし、関数はReact要素ではなくPromiseを返し、Reactと互換性がないため、これは機能しません。 Reactスタイルの静的サイトジェネレータフレームワークを考案している場合は、おそらくこれを許可するでしょう。ただし、Reactはwebappクライアントに焦点を当てているため、許可されていません。

2
Winston Ewert