[解決済み] React.render()をDOM内で複数回使ってもいいのか?
2022-06-29 05:57:58
質問
Reactを使って、DOM上に複数回コンポーネントを追加したいのですが、どうすればよいですか? このフィドル は、私がやりたいことを示し、何のエラーも投げていません。以下はそのコードです。
HTMLです。
<div id="container">
<!-- This element's contents will be replaced with the first component. -->
</div>
<div id="second-container">
<!-- This element's contents will be replaced with the second component. -->
</div>
JSです。
var Hello = React.createClass({
render: function() {
return <div>Hello {this.props.name}</div>;
}
});
React.render(<Hello name="World" />, document.getElementById('container'));
React.render(<Hello name="Second World" />, document.getElementById('second-container'));
私が見たのは この質問 を見ると、上記のようにすることで、Reactコンポーネントが互いに干渉する危険性があるのではないかと心配になります。その質問への回答は、サーバーサイドレンダリングを使用することを示唆していますが、私はDjangoをサーバーサイドで使用しているので、私のためのオプションではありません。
一方、私がやっていることは、Reactライブラリのインスタンスを1つだけマウントしているので(複数のコンポーネントが独自のReactのインスタンスを呼び出すのとは対照的に)大丈夫なのかもしれませんね?
このように複数のDOMインスタンスを使用する方法は、Reactの使用方法として問題ないのでしょうか?
どのように解決するのですか?
はい。
React.render
を同じページで複数回呼び出すことは全く問題ありません。あなたが提案したように、React ライブラリ自体は 1 回しか読み込まれませんが、各呼び出しで
React.render
を呼び出すたびに、他のどのコンポーネントからも独立した新しいコンポーネントインスタンスが作成されます。(実際、このような状況は React への移行過程にあるサイトでは珍しくなく、ページの一部の生成に
React.render
を使用して生成される部分とそうでない部分があります)。
関連
-
[解決済み】コンポーネントの定義に表示名がない react/display-name
-
[解決済み】React Propsが定義されていません。
-
[解決済み] error 'document' is not defined : eslint / React
-
[解決済み] ReactJS giving error Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
[解決済み] formcontrollabel - material-ui | Reactのデフォルトのtypography classを変更するには?
-
[解決済み] componentWillReceiveProps は名称が変更されました。
-
[解決済み] React TypeScriptで作業しているときに、Jestが予期しないトークンに遭遇した
-
[解決済み] validateDOMNesting警告React
-
[解決済み] Error: yarn start - エラー コマンド "start" が見つかりません。
-
[解決済み] Reactでグローバル変数を宣言する方法とは?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】無効な設定オブジェクトです。APIスキーマと一致しない設定オブジェクトを使用してWebpackが初期化されました。
-
[解決済み】Reactでclsxを使用する方法
-
[解決済み] react-router-domを使用する際に「Function components cannot be given refs」を回避するにはどうすればよいですか?
-
[解決済み] バベルエラーです。JSX値は、式または引用されたJSXテキストのいずれかである必要があります。
-
[解決済み] マテリアルUIセレクトフィールドのマルチセレクト
-
[解決済み] ReactJs "インバリアント違反..." リアクトの古典的な問題
-
[解決済み] Static HTML elements with event handlers require a role." を修正するにはどうすればよいですか?
-
[解決済み] AxiosにCORSの問題が発生
-
[解決済み] reactのuseStateフックでコールバックを使う方法 [重複]。
-
[解決済み] componentDidUpdate'メソッドはいつ使用するのですか?