2014-02-06 6 views
6

В Backbone.js вы можете указать элемент вида с помощью свойства el или по телефону view.setElement().React.js: привязка к существующим элементам

Есть ли эквивалентный способ подключения компонента React.js к существующему элементу DOM?

+0

Возможно, это поможет ... http://stackoverflow.com/questions/27160763/can-a-react-component-manipulate-an-existing-dom-node/34630247#34630247 – gdoumenc

ответ

10

Я не слишком хорошо знаком с магистралью, но чтобы подключить компонент React к DOM, вы используете функцию renderComponent. Первый аргумент является компонентом, а второй является DOM-элемент:

React.renderComponent(<SampleComponent />, document.getElementById('app')); 

Обновленный в контексте данного в комментарии:

React крючки с точностью до элемента, заменив его содержимое , но не сам элемент. Вы можете вызвать renderComponent() более одного раза на этом элементе, и каждый раз он будет запускать один и тот же алгоритм. Это удобно, если вы хотите передать различные реквизиты, предварительную визуализацию на сервере или полностью отобразить другой компонент. Тот же процесс используется для обновления фактического DOM каждый раз, как если бы вы использовали setState() внутри самого компонента.

+0

Разве это не место SampleComponent как ребенок #app? Я думаю, что OP хочет заменить существующий элемент компонентом. –

+0

@EdwardMSmith А, я не был знаком с поведением Backbone. Я уточню свой ответ. –

+1

Спасибо - да, чтобы уточнить, я имею в виду элементы, загруженные на серверной стороне, как опция меню выбора, которая должна знать, является ли порядок сортировки по умолчанию восходящим или нисходящим. Таким образом, элемент уже существует, когда страница загружается, и мне нужно использовать Backbone/React для привязки к ней дополнительного поведения/данных без необходимости визуализировать ее с нуля с помощью клиентского шаблона или компонента React. Я могу расширить свой вопрос, если это более полезно. – cantera

Смежные вопросы