2014-02-06 37 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

我不太熟悉Backbone,但是要将React组件挂接到DOM中,请使用renderComponent函数。第一arg是该组件,和第二个是一个DOM元素:

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

每评价给定的上下文更新:

阵营钩到一个元件通过替换它的内容,但不是元素本身。您可以在该元素上多次调用renderComponent(),并且每次都会运行相同的差异算法。如果您想传递不同的道具,在服务器上预渲染或完全渲染不同的组件,这很方便。每次使用相同的过程来更新实际的DOM,就像在组件本身中使用setState()一样。

+0

这不是说放置SampleComponent作为#app的孩子吗?我认为OP的目标是用组件替换现有的元素。 –

+0

@EdwardMSmith啊,我不熟悉Backbone的行为。我会更新我的答案。 –

+1

谢谢 - 是的,为了澄清,我指的是服务器端加载的元素,如选择菜单选项,需要知道其默认排序顺序是升序还是降序。因此,当页面加载时,该元素已经存在,我需要使用Backbone/React将其他行为/数据绑定到它,而无需使用客户端模板或React组件从头开始渲染它。如果它更有帮助,我可以扩展我的问题。 – cantera