Quero usar o React para adicionar componentes várias vezes em todo o DOM. Este violino mostra o que estou procurando fazer e não gera erros. Aqui está o código:
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'));
Eu vi essa pergunta e temo que, ao fazer o acima, estarei arriscando os componentes do React interferindo uns nos outros. A resposta a essa pergunta sugere o uso de renderização do lado do servidor, o que não é uma opção para mim, já que estou usando o Django do lado do servidor.
Por outro lado, talvez o que estou fazendo esteja OK porque tenho apenas uma instância da biblioteca React montada (em oposição a vários componentes chamando sua própria instância do React)?
Essa maneira de usar várias instâncias do DOM é uma maneira correta de usar o React?
ReactDOM.render()
que tem que inserir componentes na mesmadiv
dependendo de qual página você abre? Em particular, você tem apenas umapp.js
ativo concatenado feio<script src="app.js">
em cada página. E isso carrega libs, digamos, jQuery, Bootstrap, React e tem seu código JS customizado e componentes React. Se você visitar/foo
, você temReactDOM.render(<Foo />, getElemById('content'))
. Se você visitar/bar', you have
ReactDOM.render (<Bar />, getElemById ('content')) `. Eles interferem. Como você administra isso?ReactDOM.render(<Foo/>, document.getElementById('content').appendChild(document.createElement('div')))
Essa abordagem é adequada do ponto de vista do desempenho do carregamento da página, mas existem outras desvantagens e várias raízes do React devem ser evitadas, se possível.
Mais raeding - https://github.com/facebook/react/issues/12700
fonte