React:单独留下组件的内容

noa*_*oah 7 reactjs

是否有可能让React忽略一个子树?即,不比较或更新它?

我的用例是迁移到React.一次重写所有Handlebars模板是不可行的,但如果我们可以将现有模板用于某些子组件,我们可以随着时间慢慢采用它.

Sop*_*ert 17

是的,如果你不修改React中的子树,那么根本不会触及DOM.在React中很容易像Handlebars模板一样包装非React功能.你可以使用dangerouslySetInnerHTML:

render: function() 
    return <div dangerouslySetInnerHTML={{__html: template(values)}}>;
}
Run Code Online (Sandbox Code Playgroud)

或者你可以简单地返回一个空div并在componentDidMount中填充(或附加事件处理程序等):

render: function() 
    return <div />;
},
componentDidMount: function() {
    var node = React.findDOMNode(this);
    node.innerHTML = template(values);
}
Run Code Online (Sandbox Code Playgroud)

在后一种情况下,React在初始渲染后不会触及DOM,因为它render总是返回相同的东西.