Я хочу использовать 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 (в отличие от нескольких компонентов, вызывающих собственный экземпляр React)?
Является ли такой способ использования нескольких экземпляров DOM нормальным способом использования React?
ReactDOM.render()
компонентов должны вставлять компоненты в одно и то же вdiv
зависимости от того, какую страницу вы открываете? В частности, у вас есть только один уродливый объединенныйapp.js
актив, который есть<script src="app.js">
на каждой странице. И это загружает библиотеки, скажем, jQuery, Bootstrap, React, и содержит ваш собственный код JS и компоненты React. Если вы посетите/foo
, то у вас естьReactDOM.render(<Foo />, getElemById('content'))
. Если вы посетите/bar', you have
ReactDOM.render (<Bar />, getElemById ('content')) `. Они действительно мешают. Как вам это удается?ReactDOM.render(<Foo/>, document.getElementById('content').appendChild(document.createElement('div')))
Этот подход хорош с точки зрения производительности загрузки страницы, но есть и другие недостатки, и по возможности следует избегать множественных корней React.
Больше рейдов - https://github.com/facebook/react/issues/12700
источник