是否有可能让React忽略一个子树?即,不比较或更新它?
我的用例是迁移到React.一次重写我们所有的Handlebars模板是不可行的,但如果我们可以将我们现有的模板用于某些子组件,我们可以慢慢采用它.
是的,如果你不修改React中的子树,那么根本不会触及DOM.在React中很容易包含非React功能,如Handlebars模板.你可以使用dangerouslySetInnerHTML:
render: function() return <div dangerouslySetInnerHTML={{__html: template(values)}}>; }
或者你可以简单地返回一个空div并在componentDidMount中填充(或附加事件处理程序等):
render: function() return <div />; },componentDidMount: function() { var node = React.findDOMNode(this); node.innerHTML = template(values); }
在后一种情况下,React在初始渲染后不会触及DOM,因为渲染总是返回相同的东西.