是否有可能让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总是返回相同的东西.
| 归档时间: |
|
| 查看次数: |
5078 次 |
| 最近记录: |